Google開源Key-Value數據庫LevelDB

fmms 13年前發布 | 16K 次閱讀 NOSQL Google

Google宣布將LevelDB開源,并且遵守New BSD許可證。LevelDB是一個嵌入式的key-value數據庫。它的鍵和關聯值可以是任意的字節數組,并且按照鍵值排序,排序機制是可以被重載的。數據存儲機制非常簡單,僅僅支持Put,Get和Delete命令,然后還有前向和后向迭代遍歷。

數據會自動使用Snappy壓縮,這是一個壓縮庫,Google將其用于BigTable,MapReduce和RPC中,并且在四月份宣布開源。LevelDB也有一些局限:不支持 SQL查詢和索引,支持多線程單進程訪問,并且可以用于嵌入式設備,這將使某些項目收益,但是也會給其他的項目來帶麻煩。

LevelDB優化了批量寫操作。它將多個修改請求有序緩存在內存中,在累計到配置文件預設置的閾值之后再寫入到磁盤中。對于順序和隨機寫操作,以及順序讀操作來說,它的性能非常優秀,根據Google的性能基準測試,它能在某些測試項目中得分領先SQLite兩個數量級。SQLite在隨機讀操作中比LevelDB稍好,而在寫入較大數據的時候速度兩倍快于LevelDB。LevelDB同樣也表現得比Kyoto Cabinet優秀,Kyoto Cabinet也是一個key-value數據庫,不過Google并沒有像SQLite那樣在所有測試項目中均進行比較。同樣,Riak進行了一些測試對比LevelDB和InnoDB,在一些測試項目中,Google的LevelDB要比InnoDB要優秀或者能達到相同性能。

LevelDB是使用C++編寫,一些外部的依賴庫已經成功地移植到Windows、Mac OS X、Android和各種Unix上。在實際的應用中,Chrome的一些實驗性版本中已經使用了LevelDB,將其作為IndexDB API的實現。而Riak則將其用于節點級的存儲。不僅如此,一家開發3D地圖軟件的公司UpNext也使用了這套系統。
項目地址:http://code.google.com/p/leveldb/

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!