【发布时间】:2020-01-29 19:15:34
【问题描述】:
这两个术语可以互换使用吗?
我已经阅读了关于 SSTable 的工作原理的文章,通常,文章只是开始提到 LSM 树。 但是,它们似乎是同一回事。
我什么时候应该使用一个术语而不是另一个术语?
【问题讨论】:
标签: database indexing lsm-tree
这两个术语可以互换使用吗?
我已经阅读了关于 SSTable 的工作原理的文章,通常,文章只是开始提到 LSM 树。 但是,它们似乎是同一回事。
我什么时候应该使用一个术语而不是另一个术语?
【问题讨论】:
标签: database indexing lsm-tree
在LSM-based storage techniques: a survey论文第1节和2.2.1节中有很好的解释
LSM-tree 由一些内存组件和一些磁盘组件组成。基本上 SSTable 只是 LSM-tree 磁盘组件的一种实现。
SSTable由上述论文解释:
SSTable (Sorted String Table) 包含一个数据块列表和一个 索引块;数据块存储按键排序的键值对,以及 索引块存储所有数据块的键范围。
【讨论】:
Sorted Strings Table (SSTable) 是一个基于键/值字符串对的文件,按键排序。
但是,LSM 树不同:
在计算机科学中,日志结构的合并树(或 LSM 树)是 具有使其性能特征的数据结构 对具有高插入的文件提供索引访问很有吸引力 卷,例如事务日志数据。 LSM 树,和其他搜索一样 树,维护键值对。 LSM 树将数据保存在两个或 更多独立的结构,每个结构都针对其进行了优化 相应的底层存储介质;数据之间是同步的 分批高效地使用两个结构。
【讨论】:
实际上,LSM 树这个术语是由 Patrick O'Neil 的论文 The Log-Structured Merge-Tree (LSM-Tree) 正式定义的。 这是1996年出版的
SSTable 这个词是由 Google 的 Bigtable: A Distributed Storage System for Structured Data 在 2006 年创造的
从概念上讲,SSTable 是为基于 LSM 树的(主要是)存储引擎(例如:Lucene)提供索引的东西。这不是关于差异,而是在学术界的概念可能存在很长时间,但后来以某种方式命名。 阅读以上两篇论文会知道很多。
【讨论】: