Postgres-XL 能否同时进行分片、复制和自动平衡?

Can Postgres-XL shard, replicate and auto-balance at the same time?

例如,如果我有 5 个服务器(A、B、C、D、E)

能否设置复制因子为3的数据分布? (例如一个写到 ABC,其他记录到 ABD,其他记录到 ABE,等等)所以当节点 C 有一些硬件故障时,仍然有一些记录存在。

我们是否也可以添加一个新节点,然后在不停机的情况下将存储的数据平衡到新节点?

是的,它可以做到,但不是你想的那样。您所描述的是 NoSQL 设置。 Postgres-XL 是一个 MPP 数据库。

当您创建一个 table 时,您定义它的 "DISTRIBUTED BY" 选项,可以是复制、循环、散列、取模等。您需要查看每个选项的详细信息。您还可以在定义的节点上定义 table 个空间。

您的设置类似于

  • Node1 事务管理器
  • Node2 事务管理器代理
  • 节点 3 协调器 1 和数据节点 1
  • 节点 4 协调器 2 和数据节点 2
  • 节点 5 数据节点 3

注意:需要指出的是,我刚刚发现 Postgres-XL 没有 HA 或故障转移支持。这意味着如果单个节点发生故障,数据库将关闭并且需要手动干预。更糟糕的是,如果您使用循环法、散列、模数共享选项,如果您在单个节点上丢失了磁盘,那么您就完全丢失了数据库。

您可以拥有镜像每个节点的备用节点,但这会使您需要的节点数量增加一倍,并且仍然不会进行故障转移。您将必须手动配置它以使用备用节点并重新启动它。