欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

[Leveldb] 實現文檔翻譯

系統 2186 0

文件

leveldb是根據單機版BigTable來實現的,但是文件的組織方式卻有以下幾點不同。
每一個數據庫是由存儲在文件夾下面的一系列文件集合來實現的,有很多不同類型的文件:

  • Log Files:

log文件(*.log) 存儲了一系列最近的更新。每一個更新都會追加到當前的log文件中。當一個log文件到達一個預設閾值(默認是4MB),它將會轉變成一個有序表,并且為以后的更新操作生成一個新的log文件。

  • sorted tables

一個 sorted tables (*.sst) 存儲一系列有序的key。每一個entry是一個key的value或者一個刪除的key。
sorted tables 由多級的方式組成。sorted table 由一個特殊的更新的層級生成(也叫做level-0)。當更新的文件超過某一閾值(通常是4個),所有更新的文件會一起與level-1層的文件進行合并產生一個新的leve-1文件(我們為每2M的數據建立一個level-1層的文件)
更新層的文件可能會包含重復的key,然而在其他層級的文件有著有序不相同的key。加入第L層,L>=1。當在L層文件的大小超過10^L MB 時,一個在L層的文件以及所有在L+1層的文件會形成一個新的文件集合。這些合并操作會逐漸的從level-0到最后一層。

  • Mainifest

一個MANIFEST文件列出了所有sorted tables的集合,key的序列,一起他重要的元數據。一個新的MANIFEST文件,會在一個數據庫重新打開時生成。這個MANIFEST文件以一個log文件的格式,服務的一些更新信息會追加到這個log文件中。

  • Current

CURRENT是一個簡單的文本文件包含最新的一個MANIFEST文件的名字

  • Info logs

數據信息會打印在LOG和LOG.old文件中

  • Others

其他文件用來生成其他的用處,比如LOCK,*.dbtmp等等

Level 0

當一個log文件增長到超過閾值時(默認為1MB):
建立一個新的內存表和log文件用于寫入以后的更新
在后臺:
將之前內存表中的內存寫到一個sstable中
丟掉這個內存表
刪除舊的log文件和舊的內存表
向level-0層中增加新的sstable

  • Compactions

當L層的大小超過它的界限,我們在后臺的進程中對它進行壓縮。壓縮操作從L層和所有L+1層之間選擇一個文件。注意如果一個L層的文件只與一個L+1層的文件重疊,全部的L+1層的文件被用來做壓縮的輸出文件并且壓縮后將會被刪除。一方面:因為level-0的特殊性,我們特殊對待從level-0到level-1的壓縮:一個level-0的壓縮可能會選擇超過一個level-0文件因為這些文件會與其他文件有重疊。
一個壓縮會合并選擇的文件的內存來生成一個L+1文件序列。我們會生成一個新的L+1層的文件在當前輸出文件達到文件的大小(2MB)。我們也會生成一個新的輸出文件當這些key超過是個L+2文件。最后的規則保證了后續的L+1層文件的壓縮不會從L+2層選擇過多的數據
老文件會被刪除,新文件會被添加到服務的狀態中。
一個典型的壓縮會通過key空間進行旋轉,更多的細節是,對于沒一個L層我們記住最后一個key。下一個L層的壓縮會從這個key開始選擇第一個文件。
合并會丟棄掉重復的值。我們也會丟棄標記刪除的key,如果編號更高的層數中包含覆蓋當前key的文件。

  • Timing

Level-0 壓縮會根據從level0中取的四個1MB的文件,并且最壞情況所有的level-1(10M)。。。我們將會讀14MB寫14MB。
除了level0的特殊壓縮,我們會從L層選擇一個2MB的文件。在最壞情況,這個會與其他L+1中的12個文件重疊。壓縮過程會讀26MB,寫26MB。假設一個磁盤的IO速度為100MB最壞情況的壓縮會花費0.5秒
如果我們限制后臺寫的速度,假如100MB的10%,一個壓縮過程會花費5秒。如果用戶以10MB的速度寫,我們可能會建立很多level-0文件。這樣在每次合并的過程中花費會上升。
Solution 1: 減少這類問題,當level-0的文件數量足夠大時我們可能會增加log文件轉換的閾值。閾值下降的趨勢越大,內存表需要的內存就越大。
Solution 2: 當level0文件數量上升的時候認為降低寫的速率
Solution 3:降低大量合并操作的花費。大部分level-0的文件不進行壓縮,而我們只在合并時考慮O(N)復雜度的算法。

  • Number of files

不是只生成2MB的文件,而是對于更大的層級我們可以生成更大的文件以減少文件總數,盡管這樣會增加合并的花費。我們可以在多個文件夾中共享文件集合。

[Leveldb] 實現文檔翻譯


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91免费在线视频 | 九九热中文字幕 | 欧美无遮挡一区二区三区 | 日本aⅴ在线 | 亚洲视频黄色 | 波多野结衣VR全景3D | 国产视频一区二区 | 青青久草 | 色综合久久天天综合绕观看 | 色噜噜亚洲男人的天堂 | 亚洲精品久久久久一区二区三区 | 国产二区三区毛片 | 成人精品视频在线观看 | 日韩精品一区二区在线观看 | v片在线免费观看 | 91在线视频免费观看 | 国产精品综合网 | 中文字幕免费 | 国产在线一区二区三区 | 成人激情四射 | 久操免费在线视频 | 一级毛片ab片高清毛片 | 激情六月丁香婷婷 | 国产在线小视频 | 午夜小网站 | 国精品一区 | 色综合久久88色综合天天 | 第一福利在线观看 | av影音资源 | 欧美另类视频在线 | 欧美色专区 | 精品久久久久久久久久久 | 日本欧美久久久久免费播放网 | 欧美日韩在线视频观看 | 欧美日韩在线看 | 欧美在线播放一区 | 亚洲欧美视频一区 | 欧美一级二级三级 | 91精品午夜 | 亚洲区视频 | 这里精品|