[VLDB]LSM-based storage techniques: a survey

LSM-based storage techniques: a survey

現(xiàn)如今,log-structured merge-tree(LSM- tree)廣泛應(yīng)用于現(xiàn)代NoSQL數(shù)據(jù)庫底層,BigTable,HBase,LevelDB,RocksDB等.相比采用原地更新(in-place updates)的傳統(tǒng)索引結(jié)構(gòu),LSM- tree 先buffer,F(xiàn)lush,merge ,異地更新(out-of-place update),有很多優(yōu)點:優(yōu)越的寫性能,高空間利用率,可調(diào)節(jié),簡化并行控制和recovery。這篇文章基本涵蓋LSM- tree 發(fā)展演進,基本知識和優(yōu)化方向,現(xiàn)有研究工作分類。

1.背景
1.1 LSM- tree basic
索引更新
原地更新(in-place updates):B+-tree
優(yōu)點:
--讀優(yōu)化:只保留一份最新的數(shù)據(jù)更新
缺點:
--犧牲寫性能:更新引入隨機寫IO
--空間利用率低:更新和刪除引發(fā)碎片化
異地更新(out-of-place update):LSM- tree
優(yōu)點:
--優(yōu)越寫性能:順序?qū)?br> --簡化recovery 過程
缺點:
--犧牲讀性能
--需要額外數(shù)據(jù)重新組織的過程


image.png

順序異地更新的機制,不是新的idea。
Differential files【1976】
--更新寫到diff 文件中
--周期性的將diff 合并到main file 中
Postgres log-structured db【1980s】
--append writes --> sequential log以實現(xiàn)fast recovery。
--需要一個后臺程序持續(xù)的回收過時的記錄
LFS 之前的log- structured存儲問題:
--查詢性能低-
--空間利用率低
--很難調(diào)性能
LFS(log-structure file systems]【1991】

1.2 LSM- tree original design
LSM- tree【1996】
-- 合入merge 過程
--高寫入性能
--查詢性能
--空間利用率
original LSM-tree :
--包含一個部件序列:C0,C1,...Ck
--每個部件是一個B+-tree;
--新寫請求,會先插入到C0;
-- 每當(dāng)Ci 達到滿的條件是,就做rolling merge,合并Ci 到Ci+1;
-- 也就是采用leveling merge 策略;
-- size ratio Ti = Ci + 1/Ci;
--所以Ti 一樣,以優(yōu)化寫性能


image.png

1.3 現(xiàn)代的LSM- tree
現(xiàn)代的LSM- tree


image.png

SSTable


image.png

查詢操作-解釋了為什么需要merge 過程
image.png

合并操作

兩種merge 機制- leveling 和tiering


image.png
image.png

合并開銷與收益


image.png

1.4 well- known 優(yōu)化
優(yōu)化1-bloom filter
優(yōu)化2-partition
1.5 并發(fā)控制和恢復(fù)

1.6 開銷分析


image.png
  1. LSM- tree 改進


    image.png

    減少寫放大
    優(yōu)化merge 操作
    利用硬件
    自動調(diào)節(jié)

3.LSM- tree base 系統(tǒng)
LevelDB
2011年Google開源level DB
提供簡單的KV 接口(puts,gets,scans)
采用partition leveling merge 策略
RocksDB
Facebook 2012 年Fork 自levelDB;
增加許多特性;
采用LSM- tree動機是很好的空間利用率
size =10的情況下,leveling merge策略下90% 的數(shù)據(jù)在最大的level

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 標(biāo)題:一個針對基于LSM的NoSQL數(shù)據(jù)庫上的輔助性索引的比較性研究本文是對NoSQL輔助索引技術(shù)的一個綜述文章。...
    Caucher閱讀 701評論 0 3
  • 思想:數(shù)據(jù)修改增量保持在內(nèi)存中,達到限制后將修改操作批量寫入到磁盤中,相比較于寫入操作的高性能,讀取需要合并內(nèi)存中...
    hedgehog1112閱讀 746評論 0 0
  • 背景 LSM樹應(yīng)用場景太多了,個人接觸過的就有這些。。戳個FLAG,一定要弄明白。 HBASE LevelDB/R...
    蘇柏亞的星空閱讀 1,494評論 0 1
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險厭惡者,不喜歡去冒險,但是人生放棄了冒險,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 7,831評論 0 4
  • 公元:2019年11月28日19時42分農(nóng)歷:二零一九年 十一月 初三日 戌時干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 7,449評論 0 2

友情鏈接更多精彩內(nèi)容