SSTables和LSM-Tree

SSTables和LSM-Tree_第1张图片

SSTables 可以类比Kafka:将数据按键排序写入磁盘,并分为多个段,组织段的稀疏索引,并定期合并段文件(kafka因为不存在重复数据,所以不需要合并)

LSM-Tree是基于SSTables的:在内存中维护两个Tree(交替工作),当Tree的大小达到一定的阈值之后,写操作转移到另一个tree,并将当前tree写入磁盘,形成一个SSTables实例,当读的时候,先从内存实例中查找,然后依次从磁盘的SSTables查找,并且写的时候为了避免宕机,会先写一个顺序预写日志(这也是Rockes和Level-DB的视线)

SSTables和LSM-Tree_第2张图片

 

你可能感兴趣的:(Java从开发到设计,lsm-tree)