谁持有cassandra中的memtables和SSTables、节点还是集群?

谁持有cassandra中的memtables和SSTables、节点还是集群?,cassandra,nodes,Cassandra,Nodes,每个节点将有不同的memtables和SSTables,或者整个集群有一定数量的这些表?在写操作中,首先将其写入提交日志,然后写入memtables和sstables。这是由节点完成的吗?如果不是,如下图所述,节点在写入操作中的角色是什么? 每个节点都有自己的memtables和sstables。当然,可能会有一个协调器节点触发读/写操作,但保存数据的节点就是实际执行数据的节点 此外,集群是一组节点一起工作,但没有协调所有内容的“集群”实体 在上面提到的图片中,节点是一个红点,数据中心是节点1-

每个节点将有不同的memtables和SSTables,或者整个集群有一定数量的这些表?在写操作中,首先将其写入提交日志,然后写入memtables和sstables。这是由节点完成的吗?如果不是,如下图所述,节点在写入操作中的角色是什么?

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

此外,集群是一组节点一起工作,但没有协调所有内容的“集群”实体

在上面提到的图片中,节点是一个红点,数据中心是节点1-4和5-8,因此我们必须访问数据中心,它们都是同一集群的一部分


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

无论何时在Cassandra中创建表,都会创建一个memtable。 因此,一个节点可能有许多memtable。 触发刷新时将创建SStable

看到这个了吗

对于另一个问题(写入路径)
操作由节点本身和协调器节点执行
每当插入数据时,它都会进入memtable并追加到提交日志中。当节点停止运行时,提交日志将被重放

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


.

非常感谢阿披实拉杰,您能否澄清一些关于搜索过程如何发生以及搜索过程发生时从memtables中识别特定密钥的更多信息?是否列键存储在memtables中?您可以将其作为单独的问题发布。我可以在那里回答。评论区空间不足。是的,正如你所说,我已经把它作为另一个问题发布了。。请你看一下,让我明白一点好吗