为什么我需要 3 个节点以获得 1 的 k-safety 值

Why I need 3 nodes for k-safety value of 1

参考 Vertica 文档 -

"K-Safe 数据库的最小子集群大小 在 K-safe 数据库中,子集群必须至少具有三个节点才能运行。每个子集群都尝试维护对数据库中所有分片的订阅。如果子集群的节点少于三个,则无法保持分片覆盖。如果您尝试在 K-safe 数据库中少于三个节点的子集群中重新平衡分片,Vertica returns 会出错。” 来自 https://www.vertica.com/docs/10.0.x/HTML/Content/Authoring/Eon/Subclusters.htm?TocPath=Vertica%20Architecture%3A%20Eon%20Versus%20Enterprise%20Mode|Eon%20Mode%20Concepts|_____3

为什么我需要 3 个节点?

如果 Ksafety 为 1 并且只有 2 个分片,事情会不会起作用?那么节点 1 有分片 1 和分片 2,节点 2 也有吗?如果节点 2 出现故障,那么节点 1 会处理所有查询吗?是否与 QUORUM 和 do 节点有关,如果 1 个节点出现故障,则 QUORUM 丢失,因此数据库关闭?

正如@minatmerva 在他的评论中所说:

在多个节点上工作是大规模并行处理 (MPP) 的全部内容。当第三个节点关闭时在 2 个节点上工作仍然是 MPP。当第 2 个节点关闭时在 1 个节点上工作不再是 MPP。因此根本无法预见在 2 个节点上运行 MPP。