分布式系统中的最终一致性与MapReduce模式解析
1. 最终一致性概述
在分布式系统中,数据值不再是最新的被称为陈旧数据(stale data)。有时,用户能够看到陈旧数据。当用户看到已知的陈旧数据,并且在看到最新数据之前存在延迟时,我们将这种情况称为最终满足(eventual satisfaction)。例如,在线“购买”门票,结果发现票已售罄,这就是最终一致性(eventual consistency)的一个实例。
像Windows Azure、亚马逊网络服务(Amazon Web Services)、谷歌应用引擎(Google App Engine)等云平台,在多种情况下都具有最终一致性。以CloudFront(亚马逊的全球CDN服务)和Traffic Manager(Windows Azure的全球负载均衡服务)为例,在激活这些全球服务后,需要数分钟才能将其传播到世界各地的节点。
2. CAP定理与数据库特性
2.1 关系型数据库的ACID特性
传统的关系型数据库提供四种所谓的ACID保证:
-原子性(Atomicity):事务要么全部完成,要么全部不完成。
-一致性(Consistency):根据模式约束,数据始终有效。
-隔离性(Isolation):竞争更改同一数据的事务按顺序执行。
-持久性(Durability):已提交的更改不会丢失。
这些保证最初是在数据库运行于单个节点的环境中产生的