《HBase权威指南》读书笔记 第八章:架构,LSM树
LSM树
LSM的英文名是 log-structured merge-tree。它适合写入量很大的数据库。执行写入操作时,先把数据写在C0层级,通常C0放在内存中。当C0层级的数据达到设定的阈值时,将数据合并到C1层级。当C1层级达到阈值时,合并到C2层级。这样层层合并,文件数量越来越少,文件变得越来越大。每个层级的数据都是排序的,合并的时候通过类似归并排序的算法实现快速排序。对于删除操作,仅仅将数据标记为已删除,合并的时候跳过已标记为删除的数据,达到物理删除的效果。
下图展示了这种合并原理:
LSM树的工作机制能够让机械硬盘发挥最大的效果,因为写入的过程中所有的操作都是顺序读写。