「分布式架构」“一切都是分布式”说最终一致性( 四 )


亚马逊的DynamoAmazon的Dynamo系统将所有这些属性置于应用程序体系结构的显式控制之下 , 这是一个键值存储系统 , 在组成Amazon电子商务平台的许多服务以及Amazon的Web服务内部使用该系统 。Dynamo的设计目标之一是允许创建Dynamo存储系统实例(通常跨越多个数据中心)的应用程序服务所有者在一致性、持久性、可用性和性能之间以一定的成本进行权衡
总结在大规模可靠分布式系统中 , 必须容忍数据不一致性 , 原因有二:提高高并发条件下的读写性能;以及处理大多数模型会导致部分系统不可用的分区情况 , 即使节点已经启动并运行 。
不一致是否可以接受取决于客户机应用程序 。在所有情况下 , 开发人员都需要意识到 , 存储系统提供了一致性保证 , 并且在开发应用程序时需要考虑到这一点 。对于最终一致性模型有许多实际的改进 , 比如会话级一致性和单调读取 , 它们为开发人员提供了更好的工具 。很多时候 , 应用程序都能够毫无问题地处理存储系统的最终一致性保证 。一个特定的流行案例是一个网站 , 在其中我们可以有用户感知一致性的概念 。在此场景中 , 不一致性窗口需要小于客户返回下一页加载的预期时间 。这允许更新在预期下一次读取之前在系统中传播 。
本文的目标是提高对工程系统复杂性的认识 , 这些系统需要在全球范围内运行 , 并且需要仔细调优 , 以确保它们能够交付应用程序所需的持久性、可用性和性能 。系统设计者拥有的工具之一是一致性窗口的长度 , 在此期间 , 系统的客户可能暴露在大规模系统工程的现实中 。

【「分布式架构」“一切都是分布式”说最终一致性】


推荐阅读