今天是一个非常令人兴奋的一天,因为我们发布亚马逊DynamoDB,一个快速,高度可靠和具有成本效益的NoSQL数据库服务,旨在为互联网规模的应用。DynamoDB是15年的大规模非关系数据库和云服务领域学习的结果。几年前,我们在细节上发表论文亚马逊的技术迪纳摩,这是在亚马逊开发的第一个非关系数据库之一。必威体育精装版app官网原来迪纳摩设计是基于一套核心产生的超级可扩展和高可靠的数据库系统,强大的分布式系统的原则。亚马逊DynamoDB,这是一种新的服务,继续巩固这些原则,也是建立在我们多年的运行非关系数据库和云服务,如Amazon的SimpleDB和Amazon S3,大规模的体验。betway88体育官网这是非常高兴地看到我们所有的学识和经验的在一个易于使用的管理服务的形式成为提供给我们的客户。

亚马逊DynamoDB是完全托管的NoSQL数据库服务,在任何大规模提供快速的性能。如今的基于Web的应用程序时,面临着用户,业务和数据的增长经常会遇到数据库缩放的挑战。与亚马逊DynamoDB,开发商缩放基于云的必威体育精装版app官网应用程序可以从小处着手只有他们所需要的容量,然后增加一个给定表的请求容量为他们的应用日益普及。他们的桌子上也能生长,而不限制他们的用户存储增长的数据量。在幕后,亚马逊DynamoDB自动在足够数量的服务器,以满足客户指定的要求能力的利差表中的数据和流量。亚马逊DynamoDB在任何规模的提供了低,可预测的延迟。客户通常可以在个位数毫秒平均实现服务端。亚马逊DynamoDB存储在固态驱动器(SSD)和重复它同步跨越多个AWS可用性区域在AWS区域中的数据提供内置高可用性和数据持久性。

NoSQL的历史亚马逊 - 迪纳摩

Amazon.com的电子商务平台包括了数百个分开的服务以分散的方式开发和管理的。必威体育精装版app官网每个服务封装自己的数据,并供他人使用硬化API。最重要的是,从其各自的服务之外的数据直接访问数据库是不允许的。这种建筑模式是向已通过其前5年挑战Amazon.com,当直接访问数据库是在扩大和经营业务的主要瓶颈之一缩放挑战的回应。虽然面向服务的架构解决一个集中的数据库架构的问题,每个服务还在使用传统的数据管理系统。亚马逊的业务的增长意味着许多这类服务需要更多的可扩展的数据库解决方案。

为此,我们开始开发的存储和数据库技术的集合,以解决必威体育精装版app官网Amazon.com的电子商务平台的要求很高扩展性和可靠性的要求。我们一直推动的商业化技术的可扩展性,以自己的极限,终于到达了再也没有显著的风险下使用这些第三方技术的一个点。这不是我们的技术供应商的过错;亚马逊的缩放需求是超出了规格为他们的技术和我们的方式,大部分的客户都是不使用它们。一些在2004年假期购物季节的高度断电可以追溯到缩放商业技术超越其边界。

迪纳摩诞生出我们需要一个高度可靠,超级可扩展键/值数据库。这种非关系或NoSQL的,数据库是针对用例为核心,以亚马逊的电子商务操作,如购物车和会议服务。在这些服务中的任何停机或性能下降有直接的财务影响,并为他们的数据系统的容错性和性能的要求非常严格。这些服务也需要有能力大规模基础建设逐步以适应请求率或数据集的大小增长。迪纳摩另一个重要的要求是可预测性。这不仅是中位数性能和延迟可预测性,而且在分布的一端(99.9%),所以我们可以对几乎每一个客户提供可接受的性能。

为了实现所有这些目标,我们需要做的开创性工作。成功推出了第一迪纳摩系统后,我们证明我们在纸的经验,以便其他人可以从中受益。此后,几个克隆迪纳摩已建成和本文迪纳摩已经有其他几种类型的分布式数据库的基础。这表明,亚马逊并不是唯一的公司,而不是需要更好的工具来满足他们的数据库需求。

教训亚马逊了解到迪纳摩

迪纳摩一直沿用由一些在电子商务平台的核心服务,他们的工程师们通过它的性能和可扩展性增量已经很满足了。然而,我们没有看到太多超越通过这些核心服务。因为虽然迪纳摩始建于服务购物车的需求,它的设计和实施是更广泛,基于许多其他服务架构师输入这是显着的。正如我们采访的多名资深工程师和服务业主,我们看到了一个清晰的模式开始在他们的他们为什么不采取迪纳摩更广泛的解释出现:当发电机给他们,满足他们的可靠性,性能和可扩展性需求的系统,它什么也没做,以减少运行大型数据库系统的操作复杂性。因为他们是负责运行自己的发电机安装,他们必须成为在多个数据中心运行的各种组件的专家。此外,他们需要做的一致性,性能和可靠性之间复杂的权衡决策。此操作的复杂性是保持它们采用手摇的屏障。

在此期间,其他几个系统出现在了亚马逊的生态系统,并满足他们对简化操作的复杂性要求,尤其是Amazon S3和SimpleDB的。betway88体育官网这些被构建为消除管理系统的操作复杂性,同时还提供极高的耐用性管理Web服务。亚马逊工程师首选使用的,而不是管理自己的资料库,如迪纳摩这些服务,即使迪纳摩的功能是更好地与应用程序的需求相一致。

随着迪纳摩我们已经采取了非常谨慎,以建立能够满足我们的工程师的需求的系统。经过评估,往往明显,迪纳摩是适用于多种数据库的使用情况。但是......我们了解到,工程师们发现运行大型软件系统令人生畏,而是找了不太理想的设计方案,从管理数据库的负担中解脱出来他们,让他们专注于自己的应用前景。

很明显,开发商强烈的首选简单细粒度的控制,他们必威体育精装版app官网投票“用脚”,并通过基于云的AWS解决方案,如Amazon S3和SimpleDB的,在迪纳摩。betway88体育官网迪纳摩可能是世界上最好的技术在时间,但它仍然是软件,你必须自己跑。没有人想学习如何做到这一点,如果他们没得。最终,开发商想要的服务。必威体育精装版app官网

NoSQL的历史亚马逊 - 的SimpleDB

其中一个云服务亚马逊优先为他们的数据库需求开发是亚马逊的Simpl必威体育精装版app官网eDB。在5年来的SimpleDB已经投入使用,我们学到了很多东西,从它的客户。

首先,我们已经知道了那带走管理分布式系统的运行头痛数据库服务是非常强大的。客户喜欢的SimpleDB的表界面和灵活的数据模型。由于没有更新自己的模式时,他们的系统的发展,让生活变得更加容易。然而,他们最欣赏的事实,SimpleDB的只是工作。它提供了多数据中心复制,高可用性,并提供坚如磐石的耐久性。然而客户永远都不需要有关设置,配置,或修补其数据库的担心。

其次,大多数数据库工作负载不需要一个完全成熟的关系数据库的复杂查询和交易能力。数据库服务,只呈现一个受限制的查询表设置界面,是许多开发商一个非常重要的组成部分。必威体育精装版app官网

虽然SimpleDB中已成功与众多客户的权力的应用,它有一定的局限性客户一直要求我们的地址。

域名比例限制。SimpleDB的需要客户管理的容器称为域,它们在存储(10 GB)和请求吞吐量方面的能力是有限的数据集。虽然许多客户合作周围的SimpleDB的比例限制,通过在许多领域划分他们的工作量,SimpleDB的这一面是肯定不简单。它也无法满足可扩展性增量的要求,这东西是许多客户希望采用的NoSQL解决方案的关键。

性能的可预测性。SimpleDB的,与它的目标是一致的是简单,索引的所有属性为每个项目存储在一个域。虽然这简化了模式设计客户体验,并提供查询的灵活性,但对业绩的可预见性产生负面影响。例如,每个数据库写入需要更新不只是基本的纪录,也是所有属性的索引(无论客户是否正在使用的所有索引查询的)。同样,由于域保持了大量的索引,它的工作组并不总是适合在内存中。这会影响域的读取延迟的可预测性,特别是数据集的大小增长。
一致性。SimpleDB的最初的实施采取了“最终一致”的方式发挥到了极致,并与上涨到持续时间的第二一致性窗户呈现的客户。这意味着该系统是不直观的使用和使用更传统的数据库解决方案开发人员遇到了麻烦,适应它。必威体育精装版app官网SimpleDB的球队最终使客户能够指定一个给定的读取操作是否应大力或最终一致的解决了这个问题。

定价的复杂性。SimpleDB的推出被称为一个非常细粒度的定价尺度“机器小时。”虽然大多数客户都最终学会如何预测他们的成本,这是不是真的透明的或简单的。

介绍DynamoDB

当我们思考如何解决的SimpleDB的限制,并提供1)提供最具扩展性的NoSQL解决方案和2)预测的高性能,我们实现了我们的目标无法SimpleDB的API来满足。一些SimpleDB的操作需要,对于一个区域的所有数据是一台服务器,这使我们无法提供无缝扩展我们的客户所需要的。此外,SimpleDB的API假定所有的项目属性被自动索引,这限制了性能。

我们的结论是一个理想的解决方案将与SimpleDB的(易于云服务,一致性和基于表格的数据模型的管理是最好的部分原迪纳摩设计的最好的部分(增量的可扩展性,可预测的性能)相结合更丰富的比纯键值存储)。这些建筑的讨论最终在亚马逊DynamoDB,一个新的NoSQL服务,我们今天的激发而释放。

亚马逊DynamoDB是基于迪纳摩,对NoSQL祖的原则,并带来了云NoSQL的数据库世界的力量。它为客户提供了高可用性,可靠性和可扩展性增加,对数据集大小或请求吞吐量给定表没有限制。它是快 - 它运行在固态驱动器(SSD)技术最新,融入了许多其它优化可以在任何范围内提供低延时。

亚马逊DynamoDB是一切,我们已经从建设大型,非关系数据库为Amazon.com和AWS在高建设可扩展和可靠的云计算服务了解到的结果。亚马逊DynamoDB是NoSQL的数据库服务,它具有以下优点:

  • 管理。DynamoDB从配置的硬件和必威体育精装版app官网软件,设置和配置一个分布式数据库集群和管理正在进行的群集操作的头痛释放开发人员。它处理缩放和分区并重新划分了更多的计算机资源数据的所有复杂问题,以满足您的I / O性能的要求。它还可以自动复制你的数据在多个可用区域(并自动在磁盘或节点故障的情况下再重复),以满足严格的可用性和耐用性的要求。从我们运行Amazon.com的经验,我们知道,管理是一个关键要求。我们从使用正在寻找的NoSQL数据库工程师来帮助他们的规模装置的NoSQL产品的公司看到了许多工作机会。我们知道,从我们的经验亚马逊,一旦这些集群开始种植,管理它们变得相同噩梦运行大型关系型数据库的安装了。由于亚马逊DynamoDB是一项托管服务,您将不再需要聘请专家来管理您的NoSQL安装,你的开发人员可以自己做。必威体育精装版app官网

  • 可扩展。亚马逊DynamoDB的设计专用于表的资源扩展到几百甚至上千台服务器,分布在多个可用区域,以满足您的存储和吞吐量要求。有没有预先定义的限制,以数据的每个表可存储的量。必威体育精装版app官网开发者可以存储和检索数据的任何数量和DynamoDB将跨越多个服务器传播数据存储在表的增长的数据量。

  • 快速。亚马逊DynamoDB在非常低的延迟提供高吞吐量。它也是建立在固态驱动器,以帮助优化的高性能即使在高规模。而且,通过不是索引的所有属性,读取和写入操作的成本是低的作为写操作涉及仅更新主键索引,从而减少读取和写入操作的等待时间。在EC2运行的应用程序典型地将看到在个位数毫秒范围内平均服务侧的潜伏期为1KB对象。最重要的是,DynamoDB延迟是可以预见的。即使数据集种植,潜伏期保持稳定,由于DynamoDB的数据放置的分布式特性和请求路由算法。

  • 耐用和高可用性。亚马逊DynamoDB复制其在至少3个不同的数据中心的数据,使系统可以继续运行,即使在复杂的故障场景提供数据。

  • 灵活。亚马逊DynamoDB是一个非常灵活的系统,不它的用户强行进入一个特定的数据模型或特定一致性模型。DynamoDB表没有固定的模式,而是让每个数据项有任意数量的属性,包括多值属性。必威体育精装版app官网访问数据库时,权衡了一个简单的模型的某些性能和可用性,开发人员可以选择使用更强的一致性模型。他们还可以对计数器DynamoDB的原子递增/递减功能优势。

  • 低成本。亚马逊DynamoDB的定价是简单而明确:存储是每月1 $每GB。请求的价格基础上有多大的容量保留:每小时$ 0.01,每10个单位的写入容量和每小时$ 0.01,每50个单位的读取容量。读(或写)的一个单位等于每容量的第二个读(或写)在大小项高达1KB。如果您使用的最终一致性读取,就可以实现两倍每秒许多读取读取能力一定量。较大的项目将需要额外的吞吐能力。

在当前版本中,客户将可以使用两种类型的主索引查询键的选择:简单的哈希键和组合散键/量程按键:

简单的哈希键给DynamoDB分布式哈希表的抽象。密钥被散列在不同的分区,以优化工作负载分布。有关此的更多背景,请阅读原始的手摇纸。

复合散列键与范围键允许开发人员创建主键即两个属性,“散列属性”和复合“范围属性”。必威体育精装版app官网当针对一个复合键查询,哈希属性需要被唯一地匹配,但是可以为所述范围属性来指定的范围内操作:例如从沃纳在过去24小时内子网192.168.1.0的所有订单,从与客户的IP地址的服务器16的所有日志条目

性能可预测的DynamoDB

除了采取迪纳摩和SimpleDB的最好的想法,我们增加了新功能,以提供更高的性能可预测性。

基于云的系统已经发明了解决方案,以确保公平与统一的性能提出他们的客户,所以从任何客户不爆裂,负载应他人造成不利影响。这是一个伟大的方式,使许多快乐的客户,但往往不给单一客户索要更高的吞吐量,如果他们需要的能力。

作为满足工程师可以与基于云的解决方案的简单,他们会喜欢的吞吐量,他们需要指定的要求,并让系统自己重新配置,以满足他们的要求。如果没有这个能力,工程师往往要谨慎管理缓存系统,以确保他们能够实现低延迟,可预测的性能作为其工作负载的规模。这增加了复杂性夺一些使用基于云的解决方案的简单性。

那些需要这种类型的性能可预测性的不断增加的应用程序数量:在线游戏,社交图的应用,网络广告,以及实时分析,仅举几例。AWS的客户正在建设,可以从恰好他们的需求相匹配的数据库,它可以给他们快速,可预测的性能中受益越来越复杂的应用。

亚马逊DynamoDB的回答这个问题是“自动配置的吞吐量。”现在,客户可以指定他们需要给定表的请求吞吐量能力。在幕后,DynamoDB将分配足够的资源表中可预测实现这一吞吐量低延迟性能。吞吐量保留是有弹性的,因此客户可以增加或减少使用AWS管理控制台或DynamoDB API的点播表的吞吐能力。CloudWatch的指标,使客户能够做出吞吐量适量奉献给一个特定的表明智的决策。使用该服务的客户告诉我们,这使他们能够实现相应的控制量超过缩放和性能,同时保持简单。而不是增加服务器基础架构和重新划分他们的数据,他们只是改变管理控制台的值,DynamoDB负责剩下的照顾。

概要

亚马逊DynamoDB旨在保持可预见的高性能和高度成本效益为任何规模的工作量,从最小到最大的互联网规模的应用。您可以使用免费的层,使每月免费申请4000万开始使用亚马逊DynamoDB。其他请求容量的售价为经济高效的小时费率低至每小时0.01 $ 10个单位写能力或阅读能力的50个强一致的单位(如果你使用最终一致性读取,你可以在同样的成本获得两倍的吞吐量,或以一半的成本相同的读取吞吐量)此外,复制固态硬盘(SSD)的存储是每月1 $每GB。我们要求低定价是专为满足执行大量的读取和对每GB存储的数据的写入典型数据库工作负载的需求。

要了解更多关于亚马逊DynamoDB它的功能,API的使用情况,以及服务定价,请访问详细信息页面,在aws.amazon.com/DynamoDB并且还必威体育精装版app官网开发者指南。我很高兴地看到,这些年来的经验与系统,如亚马逊迪纳摩结果,可广泛用于所有客户一个创新的数据库服务。

评论

博客评论由Disqus