Postgresql HA集群与Patroni的一致性如何?

What is the consistency of Postgresql HA cluster with Patroni?

Postgresql HA集群与Patroni的一致性如何?

我的理解是,因为故障转移是使用共识(等或 zookeeper),系统将在网络分区下保持一致。

这是否意味着可序列化隔离级别下的事务运行也将提供线性化。

如果不是哪种一致性,我会得到顺序一致性,因果一致性..?

您不应该混淆主副本和副本之间的一致性以及数据库内的一致性。

Patroni 集群中的 PostgreSQL 数据库 运行 是具有流式副本的普通数据库,因此它提供了流式复制的最终一致性(所有副本最终将显示与主副本相同的值)。

Serializability gua运行tees 你可以在数据库 t运行sactions 中建立一个顺序,运行 对主要的,这样顺序执行的结果是和现实中的工作量一样

如果我没看错,那就是“线性化”。

由于只能写入 Patroni 集群中的一个节点(主节点),因此无论数据库是否在 Patroni 集群中,这都是正确的。

在分布式上下文中,我们有一个对象状态的多个副本,如果调度是就好像它们都在一次在单个点更新一样,那么它是可线性化的时间.

写入完成后,任何副本的所有后续读取(挂钟时间)都应该看到该写入的值或后续写入的值。

从 PostgreSQL 版本 9.6 开始可以有多个同步备用节点。这意味着如果我们有 3 个服务器并使用 num_sync = 2,那么在执行提交之前,主服务器将始终等待写入到第二个备用服务器上。

即使有故障转移,这也应该满足可线性化调度的约束。

Patroni 的 1.2 版本,当启用同步模式时,Patroni 将仅自动故障转移到在主服务器发生故障时正在同步复制的备用服务器。 这实际上意味着在这种情况下不会丢失任何用户可见的事务