?
說起LevelDb也許您不清楚,但是如果作為IT工程師,不知道下面兩位大神級別的工程師,那您的領導估計會Hold不住了:Jeff?Dean和Sanjay?Ghemawat 。 這兩位是Google公司重量級的工程師,為數甚少的Google?Fellow之二。
Jeff?Dean 其人: http://research.google.com/people/jeff/index.html , Google 大規模分布式平臺Bigtable和MapReduce主要設計和實現者。
Sanjay?Ghemawat 其人: http://research.google.com/people/sanjay/index.html , Google 大規模分布式平臺GFS , Bigtable 和MapReduce主要設計和實現工程師。
LevelDb 就是這兩位大神級別的工程師發起的開源項目,簡而言之,LevelDb是能夠處理十億級別規模Key-Value型數據持久性存儲的C++?程序庫。正像上面介紹的,這二位是Bigtable的設計和實現者,如果了解Bigtable的話,應該知道在這個影響深遠的分布式存儲系統中有兩個核心的部分:Master?Server和Tablet?Server 。 其中Master?Server做一些管理數據的存儲以及分布式調度工作,實際的分布式數據存儲以及讀寫操作是由Tablet?Server完成的,而LevelDb則可以理解為一個簡化版的Tablet?Server 。
LevelDb 有如下一些特點:
首先,LevelDb是一個持久化存儲的KV系統,和Redis這種內存型的KV系統不同,LevelDb不會像Redis一樣狂吃內存,而是將大部分數據存儲到磁盤上。
其次,LevleDb在存儲數據時,是根據記錄的key值有序存儲的,就是說相鄰的key值在存儲文件中是依次順序存儲的,而應用可以自定義key大小比較函數,LevleDb會按照用戶定義的比較函數依序存儲這些記錄。
再次,像大多數KV系統一樣,LevelDb的操作接口很簡單,基本操作包括寫記錄,讀記錄以及刪除記錄。也支持針對多條操作的原子批量操作。
另外,LevelDb支持數據快照(snapshot ) 功能,使得讀取操作不受寫操作影響,可以在讀操作過程中始終看到一致的數據。
除此外,LevelDb還支持數據壓縮等操作,這對于減小存儲空間以及增快IO效率都有直接的幫助。
LevelDb 性能非常突出,官方網站報道其隨機寫性能達到40萬條記錄每秒,而隨機讀性能達到6萬條記錄每秒。總體來說,LevelDb的寫操作要大大快于讀操作,而順序讀寫操作則大大快于隨機讀寫操作。至于為何是這樣,看了我們后續推出的LevelDb日知錄,估計您會了解其內在原因。
LevelDB的使用請參考上一篇博文: LevelDB:一個快速輕量級的key-value存儲庫
下一篇介紹LevelDB系列之整體架構
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
