leveldb 学习。
1)大概瀏覽了leveldb文檔的介紹。本想逐步看代碼,想想還是自己先實(shí)現(xiàn)一個看看如何改進(jìn)。
2)完成了一個非常丑陋的初版,但是還是比初初版有進(jìn)步。
3)key value的數(shù)據(jù)庫,不允許有key重復(fù),所以必須檢測key。
1,插入檢測key重復(fù),太耗時間,不可能去檢查數(shù)據(jù)文件。明顯必須加入一個索引文件。形式key,offset。
2, ?key,offset的索引形式,數(shù)據(jù)到達(dá)5w,簡直不可忍受。插入數(shù)據(jù)時,必須對索引文件排序,之后可以二分法查找key。
3,排序,二分查找法,又必須要求可以對索引文件進(jìn)行random access 立即訪問。所以要求每個記錄一樣大小。所以自己開始考慮是建立二級索引文件。形式:一級索引元素的offset。
查看了leveldb的實(shí)現(xiàn),自己還是太嫩,既然要求2級索引了,那么一級索引的key,offset,就沒有發(fā)揮原本可以直接查看key的功效。所以直接去掉key,offset,索引文件直接放入 ,數(shù)據(jù)文件中每條元素的offset。
4,查找key用二分查找法,插入也必須用二分插入法。
4)非常丑陋的初版完成。基本可以插入數(shù)據(jù)了。不會出現(xiàn)初初版的到了5w數(shù)據(jù),基本不可忍受的插入速度。
5)繼續(xù)完善,發(fā)現(xiàn)一篇介紹leveldb的博文,http://blog.csdn.net/qq112928/article/details/21172841。一下讓繼續(xù)完善的動力,暫停了。leveldb中使用了幾個自己完全沒有接觸的算法和思路。所以暫時暫停。先學(xué)習(xí)使用到的知識點(diǎn)。再完善。
6)爛尾的項(xiàng)目太多了。唉。。。。隨便一個做好都不容易。
非常丑陋的初版
轉(zhuǎn)載于:https://www.cnblogs.com/lsfv/p/6218987.html
總結(jié)
以上是生活随笔為你收集整理的leveldb 学习。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 设置中文版man手册
- 下一篇: iPhone Safari下iframe