[VLDB]LSM-based storage techniques: a survey

LSM-based storage techniques: a survey

现如今,log-structured merge-tree(LSM- tree)广泛应用于现代NoSQL数据库底层,BigTable,HBase,LevelDB,RocksDB等.相比采用原地更新(in-place updates)的传统索引结构,LSM- tree 先buffer,Flush,merge ,异地更新(out-of-place update),有很多优点:优越的写性能,高空间利用率,可调节,简化并行控制和recovery。这篇文章基本涵盖LSM- tree 发展演进,基本知识和优化方向,现有研究工作分类。

1.背景
1.1 LSM- tree basic
索引更新
原地更新(in-place updates):B+-tree
优点:
--读优化:只保留一份最新的数据更新
缺点:
--牺牲写性能:更新引入随机写IO
--空间利用率低:更新和删除引发碎片化
异地更新(out-of-place update):LSM- tree
优点:
--优越写性能:顺序写
--简化recovery 过程
缺点:
--牺牲读性能
--需要额外数据重新组织的过程


image.png

顺序异地更新的机制,不是新的idea。
Differential files【1976】
--更新写到diff 文件中
--周期性的将diff 合并到main file 中
Postgres log-structured db【1980s】
--append writes --> sequential log以实现fast recovery。
--需要一个后台程序持续的回收过时的记录
LFS 之前的log- structured存储问题:
--查询性能低-
--空间利用率低
--很难调性能
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;
-- 每当Ci 达到满的条件是,就做rolling merge,合并Ci 到Ci+1;
-- 也就是采用leveling merge 策略;
-- size ratio Ti = Ci + 1/Ci;
--所以Ti 一样,以优化写性能


image.png

1.3 现代的LSM- tree
现代的LSM- tree


image.png

SSTable


image.png

查询操作-解释了为什么需要merge 过程
image.png

合并操作

两种merge 机制- leveling 和tiering


image.png
image.png

合并开销与收益


image.png

1.4 well- known 优化
优化1-bloom filter
优化2-partition
1.5 并发控制和恢复

1.6 开销分析


image.png
  1. LSM- tree 改进


    image.png

    减少写放大
    优化merge 操作
    利用硬件
    自动调节

3.LSM- tree base 系统
LevelDB
2011年Google开源level DB
提供简单的KV 接口(puts,gets,scans)
采用partition leveling merge 策略
RocksDB
Facebook 2012 年Fork 自levelDB;
增加许多特性;
采用LSM- tree动机是很好的空间利用率
size =10的情况下,leveling merge策略下90% 的数据在最大的level

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 标题:一个针对基于LSM的NoSQL数据库上的辅助性索引的比较性研究本文是对NoSQL辅助索引技术的一个综述文章。...
    Caucher阅读 587评论 0 3
  • 思想:数据修改增量保持在内存中,达到限制后将修改操作批量写入到磁盘中,相比较于写入操作的高性能,读取需要合并内存中...
    hedgehog1112阅读 550评论 0 0
  • 背景 LSM树应用场景太多了,个人接触过的就有这些。。戳个FLAG,一定要弄明白。 HBASE LevelDB/R...
    苏柏亚的星空阅读 1,131评论 0 1
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,030评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,870评论 0 2