拉斯维加斯—— 在最近举行的亚马逊云科技 re:Invent 大会上,亚马逊正式推出了 Aurora DSQL 的公开预览版,这款具有多活高可用性的无服务器分布式 SQL 数据库,迅速成为业界关注的焦点。Aurora DSQL 的发布,不仅是对现有数据库技术的重大突破,也预示着云数据库领域新一轮竞争的开始。这款与 PostgreSQL 兼容的数据库选项,凭借其无限的可扩展性、卓越的可用性和创新的架构设计,引发了 AWS 社区的广泛讨论,并被许多与会者誉为本次大会的最大亮点。
Aurora DSQL:重新定义云数据库的边界
Aurora DSQL 并非简单的数据库升级,而是一次对传统数据库架构的彻底革新。它采用分布式架构,旨在解决传统关系型数据库在可扩展性和高可用性方面面临的挑战。据亚马逊云科技官方介绍,Aurora DSQL 具有以下几个显著特点:
- 无限可扩展性: Aurora DSQL 的分布式架构使其能够轻松应对数据量的增长和用户访问量的激增,理论上具备无限的扩展能力。这意味着企业可以无需担心数据库的性能瓶颈,专注于业务发展。
- 卓越的可用性: 在单区域配置下,Aurora DSQL 可实现 99.99% 的可用性;而在多区域多活配置下,可用性更是高达 99.999%。这种高可用性保证了业务的连续性,减少了因数据库故障造成的损失。
- 多活架构: 与传统的数据库主从复制模式不同,Aurora DSQL 采用多活架构,允许两个或多个区域同时接受读写操作,并实时同步数据。这种架构不仅提高了可用性,还降低了数据同步的延迟。
- 无服务器: Aurora DSQL 采用无服务器架构,用户无需管理底层的基础设施,只需专注于数据库的使用。这种架构简化了数据库的管理和维护,降低了运维成本。
- 缩放至零: Aurora DSQL 支持缩放至零,这意味着当数据库没有活动时,可以自动缩减资源,从而节省成本。这项功能对于那些具有周期性负载的应用来说尤为重要。
PostNL 首席工程师 Luc van Donkersgoed 对 Aurora DSQL 的评价颇高,他认为这是 DynamoDB 和 Postgres 的融合,是一个真正的无服务器关系型数据库,并将其视为 re:Invent 2024 的最大亮点。他的观点代表了许多技术人员对 Aurora DSQL 的期待和认可。
多活架构:突破传统数据库的瓶颈
Aurora DSQL 最引人注目的特性之一是其多活架构。传统的数据库通常采用主从复制模式,即只有一个主数据库负责写入操作,其他从数据库只负责读取操作。这种模式虽然简单,但在高可用性和性能方面存在一些局限性。
Aurora DSQL 的多活架构则允许两个或多个区域同时接受写入操作,并实时同步数据。这种架构不仅提高了可用性,还降低了数据同步的延迟。具体来说,Aurora DSQL 的多活架构具有以下特点:
- 双区域端点: 在多区域配置中,Aurora DSQL 通过两个区域端点提供服务,每个端点都连接到一个集群区域。这两个端点都呈现同一个逻辑数据库,并支持并发读写操作。
- 地理位置优化: 用户可以根据地理位置、性能或弹性等因素来平衡应用程序和连接,确保读取器始终看到相同的数据。
- 见证区域: 除了两个活跃区域外,Aurora DSQL 还使用第三个区域作为见证区域。见证区域接收写入链接集群的数据,并存储一个有限的加密事务日志窗口,以确保多区域持久性和可用性。
这种多活架构的设计,使得 Aurora DSQL 能够更好地应对各种复杂场景,例如跨地域的业务部署、高并发的访问请求以及突发的流量高峰。
乐观并发控制:提升事务处理效率
为了进一步提高事务处理的效率,Aurora DSQL 采用了乐观并发控制 (OCC) 而不是传统的锁定方法。OCC 的核心思想是,在事务执行期间不锁定资源,而是在事务提交时检查是否存在冲突。如果存在冲突,则回滚事务并重新执行。
亚马逊云科技的专家指出,由于 Aurora DSQL 的分布式架构,OCC 非常适用,因为它避免了在事务执行期间锁定资源,从而实现了更高的吞吐量和系统效率。OCC 的优势主要体现在以下几个方面:
- 避免死锁: 传统的锁定机制可能会导致死锁,即两个或多个事务相互等待对方释放资源,从而导致系统停滞。OCC 则避免了死锁的发生。
- 提高吞吐量: 由于不需要锁定资源,OCC 可以并发执行更多的事务,从而提高系统的吞吐量。
- 增强系统弹性: OCC 可以防止单个慢速事务影响或减慢其他事务的速度,从而增强了系统的弹性。
通过采用 OCC,Aurora DSQL 不仅提高了事务处理的效率,还增强了系统的稳定性和可靠性。
技术细节:深入解析 Aurora DSQL 的实现
亚马逊云科技副总裁兼杰出工程师 Marc Brooker 发布了一系列技术文章,深入解析了 Aurora DSQL 的实现细节。这些文章涵盖了事务延迟、写入管理、冲突检测、持久性、事务隔离和查询性能等多个方面。
Brooker 的研究表明,Aurora DSQL 的事务延迟相对于事务语句计数保持不变,即使跨区域也是如此。这表明 Aurora DSQL 在处理跨区域事务时具有很高的效率。他还详细解释了 Aurora DSQL 如何管理写入、检测冲突以及保证数据持久性。
这些技术细节的公开,不仅展示了亚马逊云科技在数据库技术方面的实力,也为开发者提供了深入了解 Aurora DSQL 的机会。
行业影响:挑战现有数据库格局
Aurora DSQL 的发布,无疑给现有的数据库市场带来了巨大的冲击。许多人认为,亚马逊云科技的这款新产品是对兼容 PostgreSQL 的 Neon、Cloudflare D1 和 Google Cloud Spanner 等数据库的有力挑战。
亚马逊的首席执行官在台上声称,通过将事务逻辑与存储层分离并以强一致性处理事务,Aurora DSQL 的读写速度达到了 Spanner 的四倍。这一说法引发了业界的广泛关注。
然而,Hacker News 上的反应褒贬不一。一些开发人员对 Aurora DSQL 的局限性表示担忧,例如不支持临时表、外键和视图,以及事务中不超过 10k 行的限制。这些局限性使得一些开发人员认为 Aurora DSQL 更像是一个键值存储,而不是一个完整的关系型数据库。
尽管如此,Aurora DSQL 的发布仍然具有重要的意义。它代表了云数据库技术的新方向,即分布式、无服务器、高可用性和高扩展性。随着技术的不断发展和完善,Aurora DSQL 有望成为未来云数据库的重要选择。
展望未来:机遇与挑战并存
Aurora DSQL 的发布,为开发者提供了新的选择,也为企业带来了新的机遇。通过使用 Aurora DSQL,企业可以构建更加可靠、可扩展和高效的应用程序。
然而,Aurora DSQL 的发展也面临着一些挑战。首先,其公共预览版目前仅在美国三个地区提供,这限制了其在全球范围内的推广。其次,一些开发人员对其局限性表示担忧,这需要亚马逊云科技在未来的版本中进行改进。
总的来说,Aurora DSQL 的发布是云数据库领域的一次重大突破。它不仅展示了亚马逊云科技在数据库技术方面的实力,也预示着未来云数据库的发展方向。随着技术的不断发展和完善,Aurora DSQL 有望成为未来云数据库的重要选择。
参考文献:
- Amazon Aurora DSQL: Distributed SQL Database with Active-Active High Availability. InfoQ. https://www.infoq.com/news/2024/12/amazon-aurora-dsql/
- 亚马逊云科技博客
- Marc Brooker 的博客
Views: 0