天天看點

【leveldb果斷學習系列-1】模仿寫個小程式體驗一下

從今日起開始學習google大神開發的高性能key-value資料庫leveldb,版本1.12,并不定期地分享學習心得。之是以取名為果斷學習,是有點給自己施壓的意思,其實很早就想學了,隻是由于時間關系拖到現在。如今要狠下心來把此開源技術吃透,并不一定要懂得全部源碼,但要知道它是怎麼設計的,這一點為什麼要這麼做,設計者是怎麼想的等等,這才是真正應該學習的地方。

基本介紹網上都有,我就不說太多了。雖然個人學習免不了要先學習别人的,但既然自己要做,就要做得個性化,把别人東西直接複制粘貼這種事,懶得做;學習順序還是老規矩,先模仿編譯、寫個示例,體驗一下,有個感性認識,其餘任何文字介紹都以後再說!當然啦,既然是用c++寫的,讀者肯定得要懂c++了,否則看起來就很吃力了。

上述檔案起名為test.cpp,放在了leveldb-1.12/mycode下,源碼已經由make編譯生成了相應的靜态與動态庫libleveldb.a和leveldb.so.*

為友善起見,随手寫了個makefile,如下:

生成test執行檔案後,終端執行:

【leveldb果斷學習系列-1】模仿寫個小程式體驗一下

此時我們檢視dbpath檔案夾後就會發現生成了以下檔案:

000003.log  current  lock  log  manifest-000002

至于檔案是幹嘛的,不如放在下一節講吧。從字面上看,log是日志檔案,表明幹了什麼操作,lock貌似屬于鎖,不知道鎖什麼,current,manifest就猜不出啥了。