2024年12月3日,在AWS的re:Invent大会上,亚马逊的云计算部门AWS宣布推出了Amazon Aurora DSQL,这是一款新的无服务器、分布式SQL数据库,承诺提供高可用性(多区域可用性达到99.999%)、强一致性、PostgreSQL兼容性,并且公司声称其“读取和写入速度比其他流行的分布式SQL数据库快4倍”。
AWS声称,Aurora DSQL将提供比其最接近的竞争对手Google Spanner更低的延迟。

AWS特别强调,Aurora DSQL在扩展服务时不涉及数据库分片——并且它可以独立地扩展读取和写入。公司还强调,Aurora DSQL将提供强一致性,确保如果用户选择多区域方法,所有区域将始终同时显示相同的数据。
AWS指出,为了确保弹性,Aurora DSQL采用了主动-主动架构,这意味着始终有一个备用服务器准备接管,这保证了“通过使应用程序能够读取和写入任何Aurora DSQL端点,客户的应用程序始终可用”。由于这是一个完全托管的服务,AWS处理所有的安全更新,并管理整体基础设施。

为了实现这一切,AWS团队表示他们不得不“重新发明关系数据库事务处理”。通常,确保跨多个区域的强一致性,并使这些全球分布式服务器与AWS所描述的“微秒级精度”同步,是一个相当难以实现的壮举。AWS表示,它之所以能够做到这一点,是因为它将事务处理与存储解耦了。公司解释说,传统方法会因为需要多次来回传递信息而遇到瓶颈。然而,Aurora仅在提交更改时检查每个事务,然后,在提交发生时,它并行地跨区域执行这些写入。
一个巧妙的转折是:为了确保每个区域以正确的顺序看到提交,Aurora DSQL使用了亚马逊时间同步服务,该服务为每个EC2实例添加了非常精确的参考时钟,并使用GPS卫星上的原子钟进行同步。

拥有这个确切的时间有助于解决许多数据一致性问题并加快处理速度。虽然使用基于时间的方法看起来似乎是理所当然的,但它需要非常精确且同步良好的时钟才能做到这一点。在全球范围内同步时钟是一个令人惊讶的难题。这就是为什么传统上数据库无法以这种方式使用时间。像Clockwork这样的初创公司专门从事这项工作。长期以来,这实际上是不可能的,但现在这些系统已经可用,它们使得像这样的数据库创新成为可能。

原文作者:Frederic Lardinois
发表时间:2024年12月3日




