1.概述
近年来,像Cassandra这样的NoSQL数据库流行起来。一个驱动因素是从越来越多的来源(如移动应用程序和物联网设备) 获取大量数据的永无止境的需求。
许多NoSQL数据库背后的秘诀是一种称为LSM树的数据结构。
要了解LSM树的工作原理,我们首先看一下数据通常如何存储在关系数据库中。关系数据库通常由称为B+树的数据结构支持。
B+树针对读取进行了优化。写入B+树相对代价更高,因为它涉及随机IO,并且可能包括更新磁盘上的多个Page。
LSM树的工作方式不同,LSM树针对快速写入进行了优化,写入称为memtable的结构时在内存中进行批处理。
memtable按对象Key排序,通常实现为平衡二叉树。可以看到数据是有序的了。