美文网首页
LSM存储结构

LSM存储结构

作者: Wu杰语 | 来源:发表于2021-06-18 11:24 被阅读0次

    数据库存储有两种数据结构,一种B+树,另外一种是LSM。数据库,我们知道是用B+树,但是对于LSM,就不是所有人都知道。因为这种数据结构适用大数据的存储场景,适用于写多读少的场景。

    LSM数据结构

    LSM

    LSM数据结构如上图,写入数据时:

    • 先写入WAL,用于故障恢复,如果断电,由于有WAL Log的存在,不会导致数据丢失。
    • 再写入MemTable中,如果MemTable满,则数据被迁移到Imutable Memtable中。
    • 后台线程发现有Imutable Memtable,就写入到SStable, SStable的key都是有序的。
    • 当level0的ssTbale满,就把数据迁移到level1,并且和level1的数据进行归并排序,依次类推

    各种操作

    • 写入操作,写入WAL Log和Memtable就认为成功
    • 读取,先到Memtable和Imutable memtable查找,如果查不到就到SSTable中查找,查找每个SStable,使用布隆过滤器进行加速,指导找到数据。
    • 删除,只进行标记,在合并SSTable时才会被真正删除
    • 修改,知识插入数据,合并数据时,才会将旧值删除。数据读取时,新数据位置总是比旧数据位置高,因此总能读到最新值。

    LSM存储引擎

    名称 语言
    levelDB C++
    RocksDB C++
    Pebble go
    BadgerDB go
    WiredTiger C++

    小结

    LSM这种数据结构也是头次听说,不懂的东西还比较多,特别是大数据,需要尽快补充该领域的知识。

    相关文章

      网友评论

          本文标题:LSM存储结构

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