性能
1、顺序写性能高
2、随机读性能相对慢
设计
1、将对数据的修改增量保存在内存中,达到指定大小限制之后批量把数据flush到磁盘中,磁盘中树定期做compaction,合并成一棵大树;
2、增删改使用append,在进行合并的时候进行覆盖和删除;
3、查询使用从上往下逐层查询,先查memtable,再查 immutable memtable,然后查 L0 层的所有文件,最后一层一层往下查;
4、LSM-tree 被分成三种文件:
第一种是内存中的两个 memtable,一个是正常的接收写入请求的 memtable,一个是不可修改的immutable memtable;
第二种是磁盘上的 SStable (Sorted String Table);
5、存在读写放大的问题;
网友评论