【问题标题】:What is the differences between the term SSTable and LSM Tree术语 SSTable 和 LSM Tree 有什么区别
【发布时间】:2020-01-29 19:15:34
【问题描述】:

这两个术语可以互换使用吗?

我已经阅读了关于 SSTable 的工作原理的文章,通常,文章只是开始提到 LSM 树。 但是,它们似乎是同一回事。

我什么时候应该使用一个术语而不是另一个术语?

【问题讨论】:

    标签: database indexing lsm-tree


    【解决方案1】:

    在LSM-based storage techniques: a survey论文第1节和2.2.1节中有很好的解释

    LSM-tree 由一些内存组件和一些磁盘组件组成。基本上 SSTable 只是 LSM-tree 磁盘组件的一种实现。

    SSTable由上述论文解释:

    SSTable (Sorted String Table) 包含一个数据块列表和一个 索引块;数据块存储按键排序的键值对,以及 索引块存储所有数据块的键范围。

    【讨论】:

    • 你能分享这篇文章吗?
    • 所以,如果我们向 SSTable 添加压缩和合并,我们将得到一个 LSM 树。对吗?
    【解决方案2】:

    Sorted Strings Table (SSTable) 是一个基于键/值字符串对的文件,按键排序。

    但是,LSM 树不同:

    在计算机科学中,日志结构的合并树(或 LSM 树)是 具有使其性能特征的数据结构 对具有高插入的文件提供索引访问很有吸引力 卷,例如事务日志数据。 LSM 树,和其他搜索一样 树,维护键值对。 LSM 树将数据保存在两个或 更多独立的结构,每个结构都针对其进行了优化 相应的底层存储介质;数据之间是同步的 分批高效地使用两个结构。

    https://en.wikipedia.org/wiki/Log-structured_merge-tree

    【讨论】:

    • 所以,如果我们向 SSTable 添加压缩和合并,我们将得到一个 LSM 树。对吗?
    【解决方案3】:

    实际上,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)提供索引的东西。这不是关于差异,而是在学术界的概念可能存在很长时间,但后来以某种方式命名。 阅读以上两篇论文会知道很多。

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2020-03-17
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多