亚马逊AWS官方博客

AWS 的幕后推手 — DynamoDB UpdateTable 实现加速

我们经常谈论 AWS 的 Pace of Innovation(创新步伐),并在本博客、AWS What’s New(AWS 新功能)页面和每周 AWS on Air 流媒体中分享结果。今天,我想谈谈一种略有不同的创新,那种发生在幕后的创新。

每个 AWS 客户使用不同的服务组合,并以独特的方式使用这些服务。每项服务都经过检测和监视,负责设计、构建、运行、扩展和发展服务的团队持续关注所有产生的指标。这些指标可以深入了解服务的使用方式及其在负载下的表现,在许多情况下,还会突出显示需要优化的领域,以追求更高的可用性、更好的性能和更低的成本。

一旦确定了需要改进的领域,就要制定计划,在生产前环境中进行更改和测试,然后部署到多个 AWS 区域。这种情况经常发生,而且(到目前为止)没有大张旗鼓。AWS 的每个部分都会变得越来越好,您无需采取任何行动。

DynamoDB UpdateTable
2021 年底,我们宣布Amazon DynamoDB 的 Standard-Infrequent Access 表类。正如 Marcia 在她的帖子中指出的那样,与现有的(标准)类相比,使用该类可以减少 60% 的存储成本。她还为您展示了如何修改表格以使用新类。修改操作调用的是 UpdateTable 函数,该函数是这篇文章的主题!

与几乎每次 AWS 发布的情况一样,客户立即开始使用新的表类。他们创建了新表格并修改了现有表格,修改完成后立即受益于较低的定价。

DynamoDB 使用高度分布式的存储架构。每个表都分成多个分区;更改存储类等操作是在分区间并行完成的。在研究了大量指标之后,DynamoDB 团队找到了提高并行度并减少管理并行操作所花费的时间的方法。

这一变化对大小超过 500 GB 的 Amazon DynamoDB 表产生了巨大的影响,将更新表类的时间减少了近 97%。

每次我们做出这样的改变时,我们都会捕获 “之前” 和 “之后” 的指标,并在内部共享结果,这样其他团队就可以在自己进行类似改进的过程中从经验中吸取教训。更好的是,我们所做的每一项更改都会为其他更改打开大门,形成一个积极的反馈循环,(再次)使所有使用特定服务或功能的人受益。

每个 DynamoDB 用户都可以立即利用这种增强的性能,无需版本升级或停机进行维护(DynamoDB 甚至没有维护窗口)。

像这样的增量性能和操作改进是例行公事,没有太多的宣传。然而,当我们的客户自己的测量结果表明 AWS 的某些部分变得更好或更快时,收到他们的回复总是好的。

领导力准则
当我在准备写这篇文章时正在考虑这一变化时,我想到了几项 Amazon Leadership Principles(亚马逊领导力准则)。DynamoDB 团队实现了一项改变,让表大小超过 500 GB的 DynamoDB 用户受益,从而表现了对客户的关注。为此,他们必须发明创新 (Invent) 并进行简化 (Simplify),想出一种更好的方法来实现 UpdateTable 函数。

虽然作为 AWS 客户,您无需采取任何措施即可获得好处,但这并不意味着您必须等到我们决定特别关注您的特定用例。如果您正在将 AWS 的任何方面推向极限(或愿意),我建议您联系相应的服务团队,让他们知道发生了什么。您可能会遇到配额或其他限制,或者将带宽、内存或其他资源推向极限。无论如何,团队都很乐意听取您的意见!

随时关注
我还有一长串我们所做的其他内部改进,并将与各团队合作,在全年分享更多改进。

Jeff;