【问题标题】:who holds the memtables and SSTables in cassandra, the nodes or the cluster?谁拥有 cassandra、节点或集群中的 memtables 和 SSTables?
【发布时间】:2017-10-25 15:50:30
【问题描述】:

每个节点会有不同的 memtables 和 SSTables 还是整个集群有一定数量的这些表?而且,在写操作中,首先将其写入提交日志,然后再写入 memtables 和 sstables。这是由节点完成的吗?如果不是,如下图所讨论的,节点在写操作中的作用是什么? https://www.google.co.in/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwjEmYGCkovXAhXEMo8KHeLtD48QjRwIBw&url=https%3A%2F%2Fwww.guru99.com%2Fcassandra-architecture.html&psig=AOvVaw0rqVl6BG9vn0TefAPCEb5t&ust=1508999138916139

【问题讨论】:

    标签: cassandra nodes


    【解决方案1】:

    每当您在 Cassandra 中创建表时,都会创建一个 memtable。 因此一个节点可能有很多内存表。 触发刷新时会创建一个 SStable。

    看到这个http://abiasforaction.net/apache-cassandra-memtable-flush/

    对于另一个问题(写入路径)
    操作由节点本身和协调节点进行编排
    每当插入数据时,它都会进入内存表并附加在提交日志中。当节点关闭时重播提交日志

    因此,考虑您在新插入后再次刷新数据,您将看到 2 组(生成) SStables 。现在您的分区数据存在于多个 SStable 中。
    请注意,SStables 是不可变的。稍后您可能还想了解压缩是如何发挥作用的。

    https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsConfigureCompaction.html

    【讨论】:

    • 非常感谢 abhishek raj,您能否澄清一些有关搜索过程如何发生的更多信息,以及在搜索过程发生时从内存表中识别特定键的方式?是不是就像列键存储在 memtables 中一样?
    • 你可以将它作为一个单独的问题发布。我可以在那里回答。评论区空间不足。
    • 是的,正如你所说,我已经把它作为另一个问题发布了..你能看一下它并给我一些澄清
    【解决方案2】:

    每个节点都有自己的 memtables 和 sstables。当然,可能有一个协调节点会触发操作,读/写,但保存数据的节点才是真正执行它的节点。

    此外,集群是一群一起工作的节点,但没有协调一切的“集群”实体。

    在提到的图片中,节点是一个红点,数据中心是节点1-4和5-8,所以我们必须数据中心,它们都是同一个集群的一部分。

    在配置集群时有一些重要的事情值得一提:集群名称、分区器和告密者。所有这些对于所有节点都必须相同。此外,在集群中,您将定义种子节点,但这些节点不需要对所有节点都相同,但最好是相同的。

    【讨论】:

      猜你喜欢
      • 2019-02-12
      • 1970-01-01
      • 2022-07-05
      • 2016-08-14
      • 2012-05-02
      • 2017-10-27
      • 1970-01-01
      • 2017-09-05
      • 2020-04-12
      相关资源
      最近更新 更多