元数据是否存储在 Cassandra 集群的每个节点中?

Is metadata is stored in every node of Cassandra cluster?

在Cassandra集群中,假设Cassandra集群有节点A、B和C,那么节点A是否也有节点B和C的所有元数据信息?反之亦然?

我们是否会有任何单独的节点拥有所有其他节点的元数据信息?

system(以及最近版本的 system_schema)密钥空间[s] 保存每个节点上的元数据,它们与不同的机制保持同步。如果您查看这些键空间的模式:

# describe keyspace system;

CREATE KEYSPACE system WITH replication = {'class': 'LocalStrategy'}  AND durable_writes = true;

您可以看到 LocalStrategy 复制策略,这意味着对它的更改不会分发,而只会应用于本地节点。 Gossip 用于识别节点是否具有过时的模式并启动更新。

所有与模式无关的数据,以及哪些节点拥有哪些令牌,实际上都只与该节点相关,不会以任何方式分发。例如 compactions_in_progress 仅用于该节点压缩。其他节点压缩或它的 sstables 状态与其他节点无关。