首页 > 解决方案 > etcd:强、线性和顺序一致性

问题描述

我在 etcd 的首页上阅读了以下内容:

etcd 是一种高度一致的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它在网络分区期间优雅地处理领导者选举,并且可以容忍机器故障,即使在领导者节点中也是如此。

他们所说的“强烈”一致是什么意思?他们的一致性模型如何与可能更正式或已建立的顺序和线性一致性定义相关联?

标签: consistencyetcd

解决方案


分布式系统中描述的“一致性”不同于“ACID 事务”中描述的一致性。

Paxos、Raft、Zookeeper 等(etcd 基于 Raft)中描述的一致性与 ACID 术语中的 (D) Durability 非常相似。他们的意思是,一旦数据在大多数节点中写入磁盘,就会提交事务。这进一步意味着如果大多数节点启动,那么读取将获得最新的数据写入。 [1]

假设 etcd 有 5 个节点的集群,那么只有 3 个节点(大多数节点)提交事务时才会说事务已提交。

您从顺序和线性一致性中指的是(I)ACID 中的隔离属性。

等等。如果它每次都从大多数节点读取和写入数据,则具有可以具有“线性一致性”的模式。尽管像 H-Store 这样的数据库早在 2007 年就已经解决了这个问题,但在分布式系统中具有高性能的“顺序一致性”是个难题。

[1] https://raft.github.io/raft.pdf


推荐阅读