在最近于拉斯维加斯举行的亚马逊云科技 re:Invent 大会上,亚马逊发布了 Aurora DSQL 的公开预览版,这是一款具有多活高可用性的无服务器分布式 SQL 数据库。这个新的与 PostgreSQL 兼容的数据库选项在 AWS 社区中引起了极大的热情,并被与会者广泛视为本次大会的一大亮点。
Aurora DSQL 是一个分布式 SQL 数据库,号称有无限的可扩展性、99.99% 的单区域可用性和 99.999% 的多区域多活可用性。该数据库可处理水平扩展、多区域多活运维、连接管理,还支持 缩放至零,后者是最近添加到 Aurora 的一项期待已久的特性。PostNL 首席工程师 Luc van Donkersgoed 写道:
它来了!Amazon Aurora 分布式 SQL(DSQL)。它是 DynamoDB 和 Postgres 合并而成的一个真正的无服务器关系型数据库。这是 Re:Invent 2024 的最大亮点。其他一切都不重要。
Aurora 已经通过 Global Database 提供了跨多个区域的 与 PostgreSQL 兼容的数据库,但 DSQL 背后的技术有很大不同。在 DSQL 中,两个区域都以多活模式运行,都接受写入和交叉复制数据。相比之下,Global Database 只能将数据从一个区域复制到另一个区域,并且只允许一个区域写入数据库。次级区域充当只读副本,如果需要可以提升为主区域。
在单区域配置中,Aurora DSQL 将所有写入事务提交到分布式事务日志,并同步将提交的日志数据复制到三个可用区中的用户存储副本。在多区域配置中,集群通过两个区域端点(每个链接集群区域一个)提高可用性。在介绍这项新服务时,亚马逊云科技高级数据库工程师 Raluca Constantin 和公司专业解决方案架构师 Arun Sankaranarayanan 写道:
链接集群的两个端点都呈现同一个逻辑数据库,并支持具有强大数据一致性的并发读写操作。这让你可以为地理位置、性能或弹性目的平衡应用程序和连接,确保读取器始终看到相同的数据。第三个区域充当见证区域,接收写入链接集群的数据并存储一个有限的加密事务日志窗口,以确保多区域持久性和可用性。
来源:亚马逊云科技博客
正如另一篇文章中解释的那样,Aurora DSQL 采用乐观并发控制 (OCC) 而不是传统的锁定方法。亚马逊云科技高级数据库专家 Rajesh Kantamani 和公司数据库专家 Prasad Matkar 写道:
由于其分布式架构,将 OCC 与 Aurora DSQL 结合使用非常合适,因为它可以避免在事务执行期间锁定资源,从而实现更高的吞吐量和系统效率。
这家云提供商强调,OCC 不仅可以防止单个慢速事务影响或减慢其他事务的速度,还可以为查询处理提供更好的可扩展性,并为实际故障提供更强大的集群。这是通过避免依赖锁定机制来实现的,锁定机制可能会导致死锁或性能瓶颈。
亚马逊云科技副总裁兼杰出工程师 Marc Brooker 发布了一系列技术文章,分享了对 Aurora DSQL 实现的见解。他描述了事务延迟是怎样相对于事务语句计数保持不变的,即使跨区域也是如此。Brooker 还解释了如何管理写入、冲突检测和持久性,以及事务隔离和查询性能的实现。这些文章很受欢迎,他在会议上的深度分享现已在 YouTube 上发布。
来源:Brooker 的博客
社区中的许多人认为,亚马逊云科技的这些新产品是对兼容 PostgreSQL 的 Neon、Cloudflare D1 和 Google Cloud Spanner 的挑战。亚马逊的首席执行官在台上声称,通过将事务逻辑与存储层分离并以强一致性处理事务,新数据库的读写速度达到了 Spanner 的四倍。
Hacker News 上的反应褒贬不一,许多开发人员强调了一系列重大局限性。虽然该实现依赖于亚马逊云科技的精确时间基础设施——该基础设施提供了具有强错误界限的精确时钟,但一些专家认为 DSQL 是一个给开源数据库带来启发的项目。用户 Edwinr95 写道:
没有临时表、没有外键、没有视图,事务中不超过 10k 行。除了与 Postgres 协议的一些基本线路兼容性外,我很难将其称为“数据库”,而更像是一个键值存储。
新服务旨在在全球范围内提供低延迟和同步复制能力。但它的公共预览版目前仅在美国三个地区提供:北弗吉尼亚州、俄亥俄州和俄勒冈州。
原文链接:
Amazon Aurora DSQL: Distributed SQL Database with Active-Active High Availability(https://www.infoq.com/news/2024/12/amazon-aurora-dsql/)
评论