代码之家  ›  专栏  ›  技术社区  ›  YK S

Memtable在卡桑德拉的哪里?

  •  0
  • YK S  · 技术社区  · 6 年前

    DataStax中提到,Cassandra中每个列族有一个memtable。

    那么memtable在集群中的位置是什么呢?如果它在节点中,那么每个列族只有一个memtable的语句是不正确的。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Chris Lohfink    6 年前

    memtable是一种内存中的数据结构,可以为每个节点上的每个表保留堆内或堆外数据。

    memtables定期刷新到新的sstables,这些sstables与memtable合并以进行读取。commitlog为memtable提供了持久性,直到它被刷新。

    在read-its上,根据请求的一致性级别,协调器执行合并来自不同副本的数据的任务。如果您的CL同时覆盖node1和node2,协调器将解析丢失的数据。当node1或node2发生故障或对它们的突变被丢弃时,协调器会将突变存储在一个提示中,以便在它返回时传递。如果所有这些都失败了,反熵修复将修复运行时的任何不一致。

        2
  •  1
  •   apesa    6 年前

    阅读更多 HERE