美文网首页
简要介绍LSM树

简要介绍LSM树

作者: 十毛tenmao | 来源:发表于2021-06-20 23:50 被阅读0次

LSM(Log Structured Merged Tree)树一般用在写多读少的场景,比如日志类型的数据,是HBase、 Cassandra、 LevelDB、 RocksDB 以及 ClickHouse MergeTree 等流行的 NoSQL 数据库的底层数据结构

核心思想

  • WAL保证数据持久性
  • 数据写入内存,达到阈值后再批量写入磁盘
  • 数据的所有操作:增删改全部作为顺序写,追加写的方式,大大提升写入性能
  • 顺序追加写会形成很多无用的数据,需要异步实现数据压缩和整理

核心原理

这张经典图片来自 Flink PMC 的 Stefan Richter 在Flink Forward 2018演讲的PPT typical LSM backed system SSTable (Sorted String Table)

LSM-Tree的优点和缺点

与B-tree系列数据结构相比,LSM的写性能提升10作用倍,读性能降低10倍左右(但是使用布隆过滤器Bloom Filter可以改进读性能,特别是针对不存在的key的读取性能的改进)

写入流程

  • 写入WAL(Write Ahead Logging)保证数据持久性
  • 写入Active MemTable
  • 如果Active MemTable写满,则变成Immutable MemTable,再一步写入到磁盘中的SSTable,同时生成一个新的Active MemTable
  • 更新索引
  • 更新布隆过滤器

读取流程

  • 读取MemTable,如果读取到则返回
  • 读取布隆过滤器,如果没有,则返回
  • 如果布隆过滤器存在,则使用索引定位SSTable
  • 如果索引不存在,则返回空值
  • 如果存在则加载索引值对应的SSTable,读取指定的值

数据合并流程

因为LSM都是追加写入SSTable,哪怕是删除操作都是追加一个标识,所以经过一段时间的操作后,就会存在很多重复的key以及被删除的key,所以还需要进行数据合并,减少资源占用以及提供查询性能

参考

相关文章

  • 简要介绍LSM树

    LSM(Log Structured Merged Tree)树一般用在写多读少的场景,比如日志类型的数据,是HB...

  • Designing Data-Intensive Applica

    B树和LSM树的对比 整体来说,B树的实现比LSM更成熟,LSM在写上明显更快,但是B树在读上会比LSM快很多,因...

  • HBase与LSM树

    一、LSM树的原理 讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来: 哈希存储引擎是哈希表...

  • [Hbase] hbase的存储设计

    1.Hbase中的LSM存储思想 1.1 什么是LSM树?LSM树是日志结构合并树,是由两个或两个以上的存储结构组...

  • HBASE-LSM树

    HBASE-LSM树

  • LSM

    简介 Log Structured Merge Tree,下面简称 LSM。 特点 LSM树(Log-Struct...

  • 看图轻松理解数据结构与算法系列(NoSQL存储-LSM树)

    关于LSM树 LSM树,即日志结构合并树(Log-Structured Merge-Tree)。其实它并不属于一个...

  • LSM、B 树、B+树、B*对比

    [TOC] 参考 B树、B+树、LSM树以及其典型应用场景B树和B+树的插入、删除图文详解BTree vs LSM...

  • lsm树

    会计师不使用橡皮擦,否则将入狱 不可变存储结构不允许直接修改记录,它会向文件追加一条新的记录。找到一个key对应的...

  • LSM树

    前言 LSM树全称为The Log structured Merage - Tree,根据名称可以大概认识到主要有...

网友评论

      本文标题:简要介绍LSM树

      本文链接:https://www.haomeiwen.com/subject/cyjeyltx.html