今天是我们发布的令人兴奋的一天亚马逊DynamoDB、快速、高度可靠和具有成本效益的NoSQL betway88体育官网服务专为互联网规模的应用程序DynamoDB是在大规模非关系型和体育领域学习15年的结果几年前,我们发表了一篇关于细节的论文亚马逊的Dynamo技术,这是亚马逊上第一个非关系型球员之一的必备体育专业应用官网最初的Dynamo设计基于一系列强大的分布式系统原理,从而实现了超可扩展且高度可靠的系统。亚马逊DynamoDB,这是一个新的服务,继续建立在这些原则,并基于我们多年的经验与运行非关系betway88体育官网和云服务,比如Amazon SimpleDB和Amazon S3的规模能够以易于使用的托管服务的形式向我们的客户提供所有的学习和经验,这是非常令人欣慰的。

亚马逊DynamoDB完全托管NoSQL betway88体育官网服务,提供了快速的性能在任何规模Today’s web-based applications often encounter betway88体育官网 scaling challenges when faced with growth in users, traffic, and data借助Amazon DynamoDB,扩展基于云的应用程序可以从他们需要的容量开始,然后随着应用程序的普及而增加给定表的请求容量随着用户存储越来越多的数据,他们的表也可以无限制地增长在幕后,Amazon DynamoDB会自动在足够数量的服务器上传播表的数据和流量,以满足客户指定的请求容量亚马逊DynamoDB提供低,可预见的延迟在任何规模客户一般可以平均服务端实现个位数毫秒Amazon DynamoDB将数据存储在固态硬盘(SSD)上,并在AWS区域中的多个AWS可用区域内同步复制,以提供内置的高可用性和数据持久性。

亚马逊NoSQL的历史 - 迪纳摩

Amazon.com电子商务平台包括数以百计的解耦服务必威体育精装版应用官网以分散的方式和管理每个服务都封装自己的数据,并提供一个强化的API供其他人使用最重要的是,不允许直接访问其各自服务之外的数据这种架构模式是对Amazon.com在前5年挑战的扩展挑战的回应,当时直接进入规模和运营业务的主要瓶颈之一虽然面向服务的体系结构解决了集中式体系结构的问题,但每个服务仍然使用传统的数据管理系统亚马逊业务的增长意味着其中许多服务需要更具可扩展性的解决方案。

作为回应,我们开始收集存储和betway88体育官网技术,以满足Amazon.com电子商务平台苛刻的可扩展性和可靠性要求我们一直在将商用技术的可扩展性推向极限,并最终达到这样一种程度,即在没有重大风险的情况下无法再使用这些第三方技术This was not our technology vendors’ fault; Amazon's scaling needs were beyond the specs for their technologies and we were using them in ways that most of their customers were not在2004年度假购物季节的高峰期,许多中断可以追溯到超出其边界的商业技术。

迪纳摩的诞生源于我们对高可靠性,超可扩展的关键/价值体育的需求这种非关系型或NoSQL,针对亚马逊电子商务运营的核心用例,例如购物车和会话服务Any downtime or performance degradation in these services has an immediate financial impact and their fault-tolerance and performance requirements for their data systems are very strictThese services also require the ability to scale infrastructure incrementally to accommodate growth in request rates or dataset sizesAnother important requirement for Dynamo was predictability这不仅是中位数性能和延迟的可预测性,而且在分布结束时(第99.9百分位数),因此我们可以为几乎每个客户提供可接受的性能。

为了实现所有这些目标,我们需要开展突破性的工作在成功推出第一个Dynamo系统后,我们在一篇论文中记录了我们的经验,以便其他人可以从中受益从那时起,已经建立了几个Dynamo克隆发电机纸一直是其他几种分布式体育官网的基础这表明亚马逊并不是唯一一家需要更好的工具来满足他们的需求的公司。

从亚马逊的Dynamo中吸取的教训

Dynamo已经被电子商务平台中的许多核心服务所使用,他们的工程师对其性能和增量可扩展性非常满意但是,我们从未在这些核心服务之外看到过多的采用这非常值得注意,因为尽管Dynamo最初是为满足购物车的需求而设计的,但其设计和实施范围更广,并且基于许多其他服务架构师的输入。As we spoke to many senior engineers and service owners, we saw a clear pattern start to emerge in their explanations of why they didn't adopt Dynamo more broadly: while Dynamo gave them a system that met their reliability, performance, and scalability needs, it did nothing to reduce the operational complexity of running large betway88体育官网 systems因为他们负责运行自己的发电机安装,他们不得不成为专家的各种组件运行在多个数据中心此外,他们需要在一致性,性能和可靠性之间做出复杂的权衡决策这种操作复杂性是阻碍他们采用Dynamo的障碍。

在此期间,其他几个系统出现在亚马逊的生态系统,并满足他们的要求,简化操作的复杂性,尤其是Amazon S3和Amazon SimpleDB它们构建为托管Web服务,消除了管理系统的操作复杂性,同时仍提供极高的耐用性尽管Dynamo的功能更符合其应用程序的需求,但亚马逊工程师更愿意使用这些服务而不是管理他们自己的类似Dynamo的服务。

使用Dynamo,我们非常谨慎地构建了一个满足我们工程师要求的系统经过评估,通常很明显Dynamo是许多用户的理想选择但.. ..我们了解到,工程师发现运行大型软件系统的前景令人望而生畏,而是寻找不那么理想的设计方案,使他们免于管理这些系统的负担,并让他们专注于他们的应用程序。

显而易见,必威体育精品版应用程序强烈倾向于简单到细粒度控制,因为他们“用脚”投票并采用基于云的AWS解决方案,如Amazon S3和Amazon SimpleDB,而不是DynamoDynamo可能是当时世界上最好的技术,但它仍然是你必须自己运行的软件没有人想要学习如何去做,如果他们不需要最终,必威体育精品版app官网想要一项服务。

亚马逊NoSQL的历史 - SimpleDB

其中一个云服务亚马逊必须首先满足他们的需求才是Amazon SimpleDB在SimpleDB运营的5年中,我们从客户那里学到了很多东西。

首先,我们已经了解到,一个能够解决管理分布式系统操作问题的服务非常强大客户喜欢SimpleDB的表接口和灵活的数据模型在系统发展时不必更新模式,这样可以更轻松地生活然而,他们最欣赏的事实SimpleDB只是工作它提供多数据中心复制,高可用性,并提供坚如磐石的耐用性然而,客户永远不需要担心设置,配置或修补他们的betway88体育官网。

其次,大多数betway88体育官网工作负载不需要复杂的查询和交易能力的全面关系的影响88体育官网只提供带限制查询集的表格界面的betway88体育官网服务是许多必备体育精品版应用程序官员的重要组成部分。

而SimpleDB已成功和权力许多客户的应用程序,它有一些局限性,客户一直要求我们的地址。

域缩放限制SimpleDB需要客户来管理他们的数据集在容器称为域,它的存储能力有限(10 GB)和请求的吞吐量Although many customers worked around SimpleDB’s scaling limitations by partitioning their workloads over many Domains, this side of SimpleDB is certainly not simple也无法满足增量可扩展性的要求,是许多客户希望采用一种NoSQL的关键解决方案。

绩效的可预测性SimpleDB, in keeping with its goal to be simple, indexes all attributes for each item stored in a domain虽然这简化了客户在架构设计方面的体验并提供了查询灵活性,但它对性能的可预测性产生了负面影响例如,每个betway不仅需要更新基本记录,还需要更新所有属性索引(无论客户是否使用所有索引进行查询)同样,由于Domain维护了大量索引,因此其工作集并不总是适合内存这影响域的可预测性阅读延迟,尤其是随着数据集大小的增长。
一致性SimpleDB的原始实现已经采用了“最终一致”的方法,并向客户提供了持续时间长达一秒的一致性窗口这意味着该系统使用起来并不直观,而且用于更传统的解决方案难以适应它SimpleDB团队最终解决这个问题通过允许用户指定一个给定的读操作是否应该强烈或最终一致。

定价复杂性SimpleDB引入了一个非常细粒度的定价维度,称为“机器小时”。尽管大多数客户最终都学会了如何预测其成本,但它并不是真正透明或简单。

介绍DynamoDB

当我们考虑如何解决SimpleDB的局限性并提供1)可扩展的NoSQL解决方案和2)可预测的高性能时,我们意识到SimpleDB API无法满足我们的目标一些SimpleDB操作要求域的所有数据都在一台服务器上,这阻止我们提供客户要求的无缝可扩展性此外,SimpleDB api假定所有项目属性自动索引,这限制了性能。

We concluded that an ideal solution would combine the best parts of the original Dynamo design (incremental scalability, predictable high performance) with the best parts of SimpleDB (ease of administration of a cloud service, consistency, and a table-based data model that is richer than a pure key-value store)这些架构讨论在Amazon DynamoDB中达到高潮,这是一种新的NoSQL服务,我们很高兴今天发布。

Amazon DynamoDB基于NoSQL的祖先Dynamo的原理,并将云的强大功能带入了NoSQL的体验世界。它为客户提供高可用性,可靠性和增量可扩展性,对给定表的数据集大小或请求吞吐量没有限制它速度很快 - 它运行在最新的固态驱动器(SSD)技术上,并结合了许多其他优化功能,可以在任何规模下实现低延迟。

Amazon DynamoDB是我们从为Amazon.com构建大规模,非关系型系统以及在AWS上构建高度可扩展且可靠的云计算服务所学到的一切成果Amazon DynamoDB是一种NoSQL betway88体育官网服务,具有以下优势:

  • 管理DynamoDB释放必威体育精装版应用官网头痛的人提供硬件和软件,设置和配置一个分布式betway88体育官网集群,集群和管理正在进行的操作它处理所有扩展的复杂性和数据分区和re-partitions多机器资源来满足您的I / O性能的要求它还会自动复制数据跨多个可用性区域(并自动re-replicates磁盘或节点故障),以满足严格的可用性和耐久性要求根据我们运行Amazon.com的经验,我们知道可管理性是一项关键要求我们看到很多公司的招聘信息使用NoSQL产品寻找NoSQL betway88体育官网工程师帮助规模设施我们从亚马逊的经验中了解到,一旦这些集群开始增长,管理它们就会成为运行大型RDBMS安装的噩梦由于Amazon DynamoDB是一项托管服务,因此您无需聘请专家来管理您的NoSQL安装 - 您的所有人都可以自己动手。

  • 可扩展Amazon DynamoDB旨在将专用于表的资源扩展到遍布多个可用区的数百甚至数千台服务器,以满足您的存储和吞吐量要求每个表可以存储的数据量没有预定义的限制必威体育精装版app官网ers can store and retrieve any amount of data and DynamoDB will spread the data across more servers as the amount of data stored in your table grows.

  • 亚马逊DynamoDB提供高吞吐量以非常低的延迟它还基于固态硬盘,即使在大规模的情况下也能帮助优化高性能此外,通过不索引所有属性,读写操作的成本很低,因为写操作只涉及更新主键索引,从而减少了读写操作的延迟在EC2中运行的应用程序通常会看到1KB对象的单位数毫秒范围内的平均服务端延迟最重要的是,DynamoDB延迟是可预测的即使数据集增长,由于DynamoDB的数据放置和请求路由算法的分布式特性,延迟仍然保持稳定。

  • 耐用且高度可用Amazon DynamoDB通过至少3个不同的数据中心复制其数据,以便即使在复杂的故障情况下,系统也可以继续运行和提供数据。

  • 灵活Amazon DynamoDB是一个非常灵活的系统,不会强迫用户使用特定的数据模型或特定的一致性模型DynamoDB表没有一个固定的模式,而是让每个数据项有任意数量的属性,包括多值属性必威体育精装版app官网ers can optionally use stronger consistency models when accessing the betway88体育官网, trading off some performance and availability for a simpler model他们还可以利用DynamoDB的原子递增/递减功能进行计数。

  • 低成本亚马逊DynamoDB的定价是简单的和可预测的:存储1美元/ GB /月请求的价格取决于预留的容量:每10个写入容量每小时0.01美元,每50个读取容量每小时0.01美元读取(或写入)容量单位等于每秒读取(或写入)一次读取(或写入)容量最大为1KB的项目如果使用最终一致性读取,则对于给定量的读取容量,您可以实现每秒两倍的读取次数较大的物品需要额外的吞吐量。

在当前版本中,用户将可以选择使用两种类型的主索引键查询:简单的哈希键和复合散列键/范围键:

简单的哈希键给DynamoDB分布式哈希表的抽象密钥在不同分区上进行散列,以优化工作负载分配有关此内容的更多背景信息,请阅读原始的Dynamo文章。

Composite Hash Key with Range Key allows the 必威体育精装版app官网er to create a primary key that is the composite of two attributes, a “hash attribute” and a “range attribute.” When querying against a composite key, the hash attribute needs to be uniquely matched but a range operation can be specified for the range attribute: e.gWerner在过去24小时内的所有订单,来自服务器16的所有日志条目,客户端IP地址在子网192.168.1.0上

DynamoDB中的性能可预测性

除了采用Dynamo和SimpleDB的最佳创意之外,我们还添加了新功能,以提供更高的性能可预测性。

基于云的系统发明了解决方案以确保公平性并为客户提供统一的性能,因此任何客户的突发负载都不会对其他客户造成负面影响这是一种很好的方法,适用于许多满意的客户,但通常不会让单个客户在需要时能够要求更高的吞吐量。

尽管工程师对基于云的解决方案的简单性感到满意,但他们希望指定所需的请求吞吐量,并让系统重新配置以满足他们的要求如果没有这种能力,工程师通常必须仔细管理缓存系统,以确保他们能够在工作负载扩展时实现低延迟和可预测的性能这引入了复杂性,带走了一些简单的使用基于云的解决方案。

需要此类性能可预测性的应用程序数量正在增加:在线游戏,社交图形应用程序,在线广告和实时分析等等。AWS客户正在构建越来越复杂的应用程序,这些应用程序可以从betway88体育官网中受益,这可以为他们提供快速,可预测的性能,完全符合他们的需求。

Amazon DynamoDB’s answer to this problem is “Provisioned Throughput.” Customers can now specify the request throughput capacity they require for a given table在幕后,DynamoDB将为表分配足够的资源,以低延迟性能可预测地实现此吞吐量吞吐量预留具有弹性,因此客户可以使用AWS管理控制台或DynamoDB API按需增加或减少表的吞吐量CloudWatch指标使客户能够就适合特定表的适当吞吐量做出明智的决策使用该服务的客户告诉我们,它使他们能够在保持简单性的同时实现对扩展和性能的适当控制他们不是添加服务器基础架构并重新分区数据,而只是在管理控制台中更改值,DynamoDB负责其余部分。

摘要

亚马逊DynamoDB旨在维护可以预见的高性能和高成本有效的任何规模的工作负载,从最小的到最大的网际网路规模的应用程序你可以开始使用亚马逊DynamoDB使用自由层,使免费每月4000万的请求Additional request capacity is priced at cost-efficiently hourly rates as low as $.01 per hour for 10 units of Write Capacity or 50 strongly consistent units of Read Capacity (if you use eventually consistent reads you can get twice the throughput at the same cost, or the same read throughput at half the cost) Also, replicated solid state disk (SSD) storage is $1 per GB per month请求我们的低价格是为了满足典型betway88体育官网工作负载执行大量的读和写对每GB的存储的数据。

要了解有关Amazon DynamoDB的功能,API,用例和服务定价的更多信息,请访问详细信息页面aws.amazon.com/DynamoDB还有必威体育精装版app官网er Guide我很高兴看到亚马逊Dynamo等系统多年的经验带来了我们所有客户广泛使用的创新型体育服务。

评论

博客评论Disqus