日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LevelDB简述

發布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LevelDB简述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://www.cnblogs.com/melons/p/5791855.html

既然開始了,哪有停下的道理,先了解一下Levedb的關榮歷史、完美現在和光輝的未來:

Leveldb:

1.Leveldb是一個google實現的非常高效的kv數據庫,目前能夠支持billion級別的數據量了。?

在這個數量級別下還有著非常高的性能,主要歸功于它的良好的設計,特別是LMS算法。

2.LevelDB 是單進程的服務,性能非常之高,在一臺4核Q6600的CPU機器上,

每秒鐘寫數據超過40w,而隨機讀的性能每秒鐘超過10w。

3.LevelDB 只是一個 C/C++ 編程語言的庫(有沒有超級感動,哈)

4.Leveldb只是一個語言庫,不包含網絡服務封裝, 所以無法像一般意義的存儲服務器(如 MySQL)那樣, 用客戶端來連接它.

LevelDB 自己也聲明, 使用者應該封裝自己的網絡服務器(這得等我學網絡啦)

5.LevelDB具有很高的隨機寫,順序讀/寫性能,但是隨機讀的性能很一般,

也就是說LevelDB很適合應用在查詢較少,而寫很多的場景。

LevelDB應用了LSM?(不懂吧,點這里)策略,lsm_tree(不懂吧,點這里)對索引變更進行延遲及批量處理,

并通過一種類似于歸并排序的方式高效地將更新遷移到磁盤,降低索引插入開銷。

6.key和value都是任意長度的字節數組;
7.entry(即一條K-V記錄)默認是按照key的字典順序存儲的,當然開發者也可以重載這個排序函數;
8.提供的基本操作接口:Put()、Delete()、Get()、Batch();
9.支持批量操作以原子操作進行;
10.可以創建數據全景的snapshot(快照),并允許在快照中查找數據;
11.可以通過前向(或后向)迭代器遍歷數據(迭代器會隱含的創建一個snapshot);
12.自動使用Snappy壓縮數據;
13.可移植性;

以下是百度來的資料加一整理:如果了解,可以略過:

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萬條記錄每秒??傮w來說,LevelDb的寫操作要大大快于讀操作,而順序讀寫操作則大大快于隨機讀寫操作。

總結

以上是生活随笔為你收集整理的LevelDB简述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。