B-Tree与LSM-Tree
一.SSTable-排序字符串表
有序字符串表(Sorted String Table)是包含一组任意有序键 - 值对的文件,可以很好的处理重复键,不需要额外的空间来填充(padding)键或值,并且键值可以是任意的东西。顺序的读取整个文件,就可以获得一个有序的索引。如果文件非常大,可以在前面追加或创建独立的key:offset索引来加速访问。这就是SSTable,一个非常简单却非常有用的交换大量有序数据片段的方式。
二.SSTable与Hash索引比较
- SSTable合并段更加高效,即使文件大于内存,可用类似归并算法的方法并发读取多个输入段文件,比较每个文件的第一个键(因为SSTable是有序键值对)把最小的键拷贝到输出文件,重复这个过程。
- 在文件中查找特定的键时,可以使用偏移来确定键的位置。