选择一致性

| | 评论 (
Amazon SimpleDB今天推出了一系列新功能,让客户可以更好地控制在他们的运营中使用哪种一致性和并发性模型。现在有条件的放置和删除操作以及新的“一致读“选项。这些新功能将使这些应用程序更容易转换为SimpleDB,这些工具的设计考虑了传统的betway88体育官网工具。。

回顾一致性的挑战

设计分布式系统需要可靠地运行在全球规模不是一个简单的任务。当您需要在超可扩展条件下满足严格的可用性和性能要求时,有许多因素可以发挥作用。我列出了其中的一些挑战一篇解释最终一致性概念的文章。如果你需要实现高可用性和可扩展的性能,您需要采取数据复制技术。但复制本身带来了一系列需要解决的挑战。例如,现在需要在多个位置进行数据更新,那么如果(暂时)无法访问这些位置中的一个或多个,您会怎么做??

整个计算机科学领域致力于为构建可靠的分布式系统的难题找到解决方案。。埃里克布鲁尔加州大学伯克利分校总结了所谓的挑战CAP定理,它说明共享数据系统的三个属性 - 数据一致性,系统可用性和网络分区容忍度 - 在任何给定时间只能实现两个。In practice the possibility of network partitions is a given, so the real trade-off is between availability and consistency: In a system that needs to be highly available there are a number of scenarios under which consistency cannot be guaranteed and for a system that needs to be strongly consistent, there are a number of scenarios under which availability may need to be sacrificed.这些权衡方案通常涉及几乎从未发生的边缘条件,但在需要大规模运行的系统中,每天服务数万亿和数万亿的请求,需要准备好处理这些情况。。

除了可用性和一致性之间的这种基本张力之外,还要在并发性,性能和一致性之间进行权衡。实现严格的一致性可能会导致更新或读取延迟,并可能导致吞吐量降低。必须了解这些权衡因素,因为它们不仅仅是一个仅影响系统内部的深奥概念。相反,底层服务的一致性模型将对必威体育精装版应用官员的应用程序产生明确的下游影响。。

亚马逊服务中的数据一致性模型

在亚马逊内部,我们强烈支持使用高度可用的服务,因此我们愿意处理称为最终一致性的轻松形式的一致性。我们的应用程序旨在处理这种一致性模型,在许多情况下,这使我们能够构建满足最严格可靠性要求的服务和应用程序。。

亚马逊S3Amazon SimpleDB是使用最终一致性模型使用这些高可用性原则设计的AWS服务的示例。我们的客户也能够处理这种一致性模型,并在这些服务之上构建可扩展且可靠的应用程序。现在这些服务已经运行了一段时间,我们收到了许多高级客户的反馈,询问他们是否可以更好地控制服务架构师的权衡,特别是读取操作的一致性。在最终一致性模型下,存在过时读取的可能性,而在强一致性模型中,读取始终返回最新更新,但在某些罕见分区方案下可能会导致性能损失和较低可用性。。

亚马逊SimpleDB今天发布的两项新功能将控制权交给了客户手中的一致性模型。第一个是客户执行一致性读取的能力,这将阻止读取操作可能返回陈旧数据。第二个是条件放置和删除,它将确保仅在匹配某些属性值时才执行这些操作。。

这些新功能将使传统的应用场景变得更加容易,例如并发控制,项目计数器,条件更新/删除等。,使用Amazon SimpleDB实现。。

一致阅读

直到最近,SimpleDB才支持最终的一致读取。这意味着在某些条件下,读取在一小段时间内可能无法反映最近完成的写入的结果。然而,如果读取反映了在读取之前执行的写入的结果,则有一类应用程序将更容易实现。为了便于构建此类应用程序,SimpleDB现在还支持一个强大的一致性选项一致的阅读这将反映在读取之前成功返回的所有写入。特别是那些最初设计为传统的应用程序的应用程序将更容易适应Simple DB。。

选择&GetAttributes请求参数现在包含一个可选的布尔标志ConsistentRead这是默认设置为false。如果ConsistentRead如果不存在或设置为false,SimpleDB将默认为最终一致的读取。如果ConsistentRead如果设置为true,SimpleDB将返回一致的读取。。

下表总结了两个SimpleDB读取一致性选项的特征:

最终一致阅读 一致的阅读
陈旧可读
最低读延迟
读最高吞吐量
没有陈旧的读物
更高的读取延迟
降低读取吞吐量

由于一致的阅读可能产生更高的延迟和更低的阅读吞吐量应该只用于当应用程序场景命令返回一个项目的最新值或属性。对于所有其他场景,最终一致的读取将产生最佳性能。。

有条件的Put和Delete

许多必须要求SimpleDB中的原语用于实现乐观并发控制,项目级别事务,锁,计数器等。新的条件将和删除功能在SimpleDB中使这些原语。。

有条件的如果单值属性的预期一致值与指定的预期值匹配,则允许插入或替换给定项的一个或多个属性的值。只要所有并发编写器都使用条件更新,条件put就是一种机制,可以消除由写入同一项的并发写入程序所引起的丢失更新。。

有条件的删除如果项的单值属性的预期一致值与指定的期望值匹配,则允许删除给定项的项,属性或属性值。如果当前值与预期值不匹配,或者属性完全消失,则拒绝删除。。

可用性怎么样?

即使SimpleDB现在支持更强一致性模型的操作,但在简洁的范围内,SimpleDB仍然是高度可扩展,高可用性和高度持久的结构化数据存储。即使在极端故障情况下,例如完整的数据中心故障,SimpleDB也可以继续可靠地运行。但是,当出现这些极端故障情况之一时,可能会在软件重新组织以确保其提供强一致性时,暂时不能提供更强的一致性选项。在这些条件下,默认的,最终一致的读取将保持可用。。

摘要

通过提供必威体育精装版应用官网人控制一致性模型,他们现在能够做出取舍的一致性和性能。这种灵活性在需要调整现有应用程序的情况下非常重要,这些应用程序的设计考虑了传统的操作模式。必威体育精装版app官网现在可以选择使用一致的阅读方法,如果他们的应用程序可以接受权衡。通过有条件的放置和删除,必威体育有能力使用乐观的并发控制方法来管理他们的体育官网。。

你可以找到关于的更多细节Amazon SimpleDB产品页面和杰夫巴尔的帖子在亚马逊必威体育精装版app官网的博客。。

评论

博客评论Disqus