深入探讨Amazon Aurora DSQL及其架构

深入探讨Amazon Aurora DSQL及其架构

关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, Amazon Aurora D Sequel, Database Architecture, Transaction Isolation, Concurrency Control, Scalable Storage, Distributed Systems]

导读

Amazon Aurora DSQL是一种新型的无服务器、分布式SQL数据库,它融合了亚马逊数十年的创新和卓越运营经验。Join Marc Brooker,亚马逊云科技副总裁兼Distinguished Engineer,深入探讨Aurora DSQL的设计和关键创新技术,这些技术使其成为新应用程序和需要最高级别弹性的应用程序的理想选择。了解Aurora DSQL中的主动-主动架构如何提供单区域和多区域弹性以及几乎无限的扩展能力。

演讲精华

以下是小编为您整理的本次演讲的精华。

讲者首先表达了对亚马逊 Aurora DSQL 预览版发布的极大喜悦,这是一个针对事务性工作负载精心优化的关系型 SQL 数据库。他强调,DSQL 的架构设计优先考虑了可扩展性,使应用程序能够从小规模无缝过渡到大规模,而无需更改最初的数据库选择。DSQL 的一个显著特点是无服务器的性质,解除了用户进行补丁、维护和读取副本管理的负担。此外,它还提供了主动-主动和多区域功能,确保了跨地理边界的高可用性和低延迟。值得注意的是,DSQL 与 PostgreSQL 兼容,可以最小化修改地无缝集成大多数 PostgreSQL 代码和客户端。

DSQL 架构的基础原则是“日志即数据库”的理念。所有写操作都会被引导到一个名为 Journal 的内部日志服务中,该服务保证了原子性和持久性。一个名为 Adjudicator 的隔离系统负责检查并发事务是否存在潜在冲突,从而维护隔离性原则。

对于一个包含两个插入操作的基本事务,过程如下:首先,插入操作被提交到 Journal 日志中,确保持久性。随后,Adjudicator 会检查是否存在冲突以维护隔离性。如果没有检测到冲突,事务就会被提交到 Journal 中。

在更复杂的事务中,例如涉及 dogs 表的更新操作,步骤如下:事务启动后,会从存储中检索 Max 和 Snuffles 的当前值,以计算它们年龄的新值。这些新值随后会被缓存在查询处理器中。提交时,与前一场景类似的隔离检查和 Journal 写入过程会被执行。

存储引擎负责在 Journal 数据之上提供高效的索引和查询功能。它支持下推操作,例如扫描范围或投影列,以最小化数据传输开销。存储是横向分区到节点上的,以促进可扩展性。

查询处理由一组隔离的 Firecracker 微虚拟机提供支持,每个虚拟机都在执行一个 PostgreSQL 引擎。这种架构设计使计算资源能够独立扩展,同时确保安全隔离。

对于读取操作,DSQL 采用多版本并发控制 (MVCC) 来为事务的整个生命周期提供一致的数据库视图的快照隔离,从而避免读写冲突。讲者解释说,这种 MVCC 实现与 PostgreSQL 不同,旨在避免与 vacuum 操作相关的问题。

DSQL 的隔离级别被称为“强快照隔离”,它提供线性一致性,防止脏读等常见异常,同时允许比完全可序列化更高的并发性。这个隔离级别相当于 PostgreSQL 的可重复读级别,尽管讲者承认 PostgreSQL 的命名有些误导。

架构精心设计,在写操作提交时才进行协调,从而促进高可扩展性。值得注意的是,读操作永远不需要存储节点之间的协调。

在多区域部署中,事务通过仅在提交时跨区域协调来完成提交,从而最小化跨区域延迟。只读事务在本地提交。讲者举例说明了一个涉及选择所有饥饿狗狗、计数并在减少可用食物后将选定狗狗状态更新为“吃饱”的交互式事务。他强调,DSQL 的架构支持这种涉及往返应用程序代码的交互式事务,直到提交时才会产生跨区域开销。

DSQL 通过确保 adjudicator 只存储软状态来支持快速的多区域故障转移。在发生区域故障时,网络分区的多数一侧保持可用和一致,而失败区域中的客户端将无法进行事务。讲者阐明,这种行为符合 CAP 定理的原则,因为在网络分区的多数一侧保持了强一致性。

为确保正确性,DSQL 采用了多种技术,包括 Rust 编程语言(提供内存安全和性能优势)、确定性模拟测试(在各种故障情况下对分布式系统进行单元测试)、SQL 模糊测试(生成并执行数百万个独特的 SQL 事务以验证 SQL 实现和下推操作的正确性)、形式化方法(如 TLA+ 和 P,用于在架构层面上对协议的正确性进行形式化推理)以及运行时监控(验证实现是否遵循形式化规范)。

讲者最后鼓励在预览阶段提供反馈,以完善 DSQL 的功能和能力,为生产发布做准备,并强调这些反馈对于塑造产品以最佳方式服务用户的需求至关重要。

总而言之,DSQL是一个可扩展、强一致性的分布式SQL数据库,针对事务性云工作负载进行了精心优化,与PostgreSQL兼容。它的架构将可扩展性和正确性作为基本设计原则,借鉴了亚马逊云科技在构建和运营大规模云服务方面的丰富经验。通过创新技术,如分离数据库组件、避免在提交时进行协调,以及利用亚马逊云科技内部技术如Journal日志服务和Firecracker微虚拟机,DSQL旨在为现代事务性工作负载提供高度可扩展和可靠的数据库解决方案。

下面是一些演讲现场的精彩瞬间:

Andy Jassy,亚马逊公司的首席执行官,介绍了D Sequel新数据库服务的架构,强调其用户友好的设计,使开发人员能够构建出色的应用程序,而无需担心内部复杂性。

1e20e7c7d5295c7ecd12403dd083dcbb.png

演讲者解释了亚马逊内部日志服务Journal如何作为支持S3、DynamoDB、Kinesis和Lambda的基础设施的关键部分,确保在将数据插入数据库时保持原子性和持久性,并以插入两只狗Snuffles和Sophie为例。

0f572a6a6b0e3e7c08225b8fa239b9a3.png

亚马逊云科技首席执行官解释了亚马逊云科技在保持可用性和一致性的同时如何处理网络分区,并以“不高兴的狗”无法在分区期间访问数据库的比喻进行说明。

56ac1e6f3b89a446d68df6a0c5314978.png

亚马逊推出了其前沿的确定性模拟测试技术,能够在各种故障情况下对分布式系统进行严格测试。

8558218633c1e6feee5ce0943f7240b3.png

亚马逊利用形式化方法和运行时监控来确保代码实现的正确性,为健壮的协议开发架起了规范与实现之间的桥梁。

54624c452d8c26d91296b6f38d444ae6.png

Andy Jassy邀请客户在预览期间试用新的dsql服务并提供反馈。

a6dfb29e9aa0fff942f3adc4418d918f.png

总结

在这个富有洞见的演讲中,演讲者深入探讨了Amazon Aurora DSQL的架构细节,这是一个针对事务性工作负载进行优化的关系型SQL数据库。演讲通过引人入胜地探索数据库的设计原则、可扩展性策略以及确保数据持久性、一致性和隔离性的创新方法,娓娓道来。

演讲者强调将单体数据库架构分解为可扩展的层,每一层负责不同的任务,如事务路由、SQL执行、并发控制和存储索引。这种模块化方法使得每一层都可以独立扩展,从而使系统能够根据特定工作负载的需求进行定制。

一个关键亮点是实现了一种分布式提交协议,利用“日志即数据库”的原则和一个定制的时间分布网络。这种设计确保了原子性、持久性和强一致性,同时最小化了协调开销,从而提高了可扩展性和弹性。

演讲者还深入探讨了跨区域部署的细节,优化了减少跨区域往返次数和快速故障恢复。在网络分区期间,架构能够在多数一侧保持可用性和一致性,这被视为一个重大优势。

在整个演讲过程中,演讲者强调了所采用的严格测试和验证流程,包括确定性模拟测试、模糊测试、形式化方法和运行时监控。这些技术旨在增强对系统正确性和健壮性的信心。

最后,演讲者热切期待社区的反馈和见解,强调此次预览的目的是为了完善产品,以最好地满足用户需求,并推动数据库领域的创新。

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值