众所周知,随着数据成为关键生产要素,新兴软硬件技术快速发展,各行各业的数据呈指数式增长,传统集中式数据库面对海量数据存储、高并发等场景的“局限性”愈发突显,而分布式数据库凭借高可用、高可扩展性、高性价比等优势,不但被对数据库要求最严苛的金融行业所认可,同时也逐渐被应用在更广阔的领域。
但也要看到,分布式数据库一直受到“CAP”原则的制约,它指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),这三个要素最多只能同时实现两点,不可能三者兼得。这也就意味着,在部署分布式数据库产品时,开发者必须根据系统的需求和业务场景,在一致性、可用性和分区容错性之间进行权衡和选择。
那么,是否有一种“十全十美”的解决方案,能够打破分布式数据库面临的“CAP”魔咒呢?
在刚刚举办的亚马逊云科技 re:Invent 2024,正式宣布推出Amazon Aurora DSQL和Amazon DynamoDB global tables两个全新功能,就能够全面满足一些特殊工作负载对跨区域运行、强一致性、低延迟、高可用性的严苛需求,由此不仅彻底解决了困扰数据库产业半个世纪之久的CAP“困境”,更引领了整个云原生数据库领域的“再创新”,其价值可谓重要而深远。
01.
解读分布式数据库的“CAP”困境
根据IDC调研显示,分布式数据库为解决企业数据承载困难的问题提供一个较好的解决思路,特别是过去几年,随着分布式数据库的实际应用价值和技术验证的稳固,不仅包括中小型金融机构,其他诸如电信运营商、交通运输等高度依赖数据库且业务复杂度相似的行业,也都将加速选择分布式数据库,因此2024年将进入分布式数据库大规模部署阶段。
但不可否认的是,在相当长的时间里,分布式数据库无法同时达成低延迟、高可用性和强一致性,这个“不可能三角”也被称之为“CAP”魔咒。
具体而言,Consistency(一致性),由于分布式环境存在多个节点,这些节点上的数据在同一时间所存储的数据必须是一致的,这就是一致性协议;Availability(可用性),即任何时刻需要保证服务的可用和稳定;Partition Tolerance(分区容错),即某个时刻出现网络或者硬件不可用,甚至宕机,其它的机器也要能保证正常可用。在分布式数据库的应用中,CAP三件事不能同时兼得。也正因此,从实践上来看,行业用户只能基于不同的应用场景,通过妥协的方式达到一定程度的兼顾。
比较典型的如CP模式(一致性+分区容错性),即在对数据一致性要求较高的场景下,如银行系统、金融交易系统等,通常会选择CP模式。在CP模式下,系统会优先保证数据的一致性,即使在网络分区的情况下,也会暂时牺牲部分可用性,以确保所有节点的数据都是一致的。
而AP模式(可用性+分区容错性),则是对可用性要求较高、可以容忍一定数据不一致的场景,如社交网络、新闻网站等,通常会选择AP模式。在AP模式下,系统会优先保证可用性,即使在网络分区的情况下,也会继续提供服务,但是可能会出现数据不一致的情况;
最后是CA模式(一致性+可用性),在理论上,CA模式是不存在的,因为在分布式系统中,网络分区是不可避免的,而一旦发生网络分区,就无法同时保证一致性和可用性。但是,在一些特殊的场景下,比如系统的规模较小、网络环境较为稳定等,可以近似地实现 CA模式。
对于大多数的分布式系统来说,“CAP”原则具有十分重要的指导意义,而这也意味着行业用户只能选择选择CP,或者AP以及CA,始终无法完成“CAP”的突破,而受到“CAP”原则的制约,分布式数据库未来的长远发展也难以“更上层楼”。
特别是在数据服务场景越来越多样化的今天,对分布式数据库所具备的数据一致性级别要求将会越来越高。不仅如此,随着越来越多微服务的广泛应用,还需要分布式数据库能够支持跨集群、跨表分区、跨数据块的数据一致性等。从这个角度来看,打破分布式数据库的“CAP”魔咒,不仅是“趋势所在”,更是“迫在眉睫”。
02.
亚马逊云科技彻底打破“CAP”魔咒
在此背景下,在re:Invent 2024大会上,亚马逊云科技推出了全新的Amazon Aurora DSQL,这是专为下一代Aurora打造的无服务器分布式SQL的数据库,具有迄今为止最快的读写速度,能够实现跨区域部署及无限扩展,轻松实现99.999%的高可用性,且具有数据强一致性,零基础设施运维等特点,彻底打破了困扰数据库久远的“CAP”魔咒。
在亚马逊云科技CEO Matt Garman看来,传统的“CAP”原则限制了分布式数据库未来发展和影响力,而亚马逊云科技一直倡导创新文化,通过不断的创新和突破,并基于Amazon Aurora端到端的优势构建了一套全新的交易体系,由此解决了“CAP”原则的制约。
那么,亚马逊云科技是如何做到的呢?据了解,全新Amazon Aurora DSQL采用了新理念和新技术来克服分布式数据库面临的两大挑战:如何在地理位置不同的节点上以低延迟实现强一致性,以及以微秒级精度同步全球服务器。
一方面,新理念,指的是为了在低延迟的情况下实现多区域强一致性,Amazon Aurora DSQL 将事务处理与存储实现完全“解耦”,Amazon Aurora DSQL只在提交时检查每个事务,并在提交时并行处理所有区域的所有写入,从而提供一个具有强大一致性和快速写入的多区域数据库。
Matt Garman进一步解释说,例如用户有一个跨两个区域的数据库,想要完成一个AA事务,事务大概有十个语句。正常来说,一来一回,十个提交十个返回,如果是在同一数据中心,延迟应该非常低,但如果一个在弗吉尼亚,一个在东京,那延迟就高达158毫秒,而如果用户的事务需要涉及到更多的区域,那么延迟问题就更加严重。
为此,亚马逊云科技通过将事务处理和存储层分离,提交语句的时候不需要单独返回,然后同时将所有区域的所有权限并行化,相当于所有区域并行提交指令,统一处理,由此即可在跨区域之间获得强大的一致性。
另一方面,新技术,指的是以微秒级精度同步全球服务器。当数据分布存储在全球不同的区域数据中心之中时,往往还会涉及到“时钟漂移”问题,而为了确保每个区域都能以准确的顺序看到每个数据库操作,Amazon Aurora DSQL还使用了自己的时间同步基础设施(Amazon Time Sync Service),该服务在每个 EC2实例上添加了硬件参考时钟,将它们同步到与卫星连接的原子钟,从而在世界任何地方提供微秒级的精确时间。
确实如此,对于数据库而言,时间的同步至关重要,这是因为数据库对于数据的读写保证,尤其是支持事物的关系性数据库,是需要通过严格遵循操作的日期顺序来实现的,这在一台机器中实现是非常容易的,但对于分布式数据库,特别是全球部署的分布式数据库而言,如何保证在“成百上千台”服务器节点中去实现时间的同步,却是“难上加难”的。
为此,亚马逊云科技打造了时间同步基础设施,通过采用精确的时钟,并且通过对比“时间戳”来确定众多服务器的操作顺序,它可以在世界上任何地方提供精确到十亿分之一秒误差的同步时钟。此外,这个基础设施中的每一个机架还备有一个本地原子钟,防止其同步的卫星暂时不可用,由此保证时间的一致性。
正如Matt Garman强调说:“有了重新设计的交易体系和能够提供微秒级的精确时间,我们不再需要在一致性、可用性和分区容错性之间进行权衡和选择。”
更为关键的是,基于新理念和新技术打造的Amazon Aurora DSQL还成为了最快的分布式数据库。数据显示,Amazon Aurora DSQL与同样使用原子钟保证一致性的Spanner进行了比较,对于一个基本的10次事务SQL语句,Amazon Aurora DSQL的读写吞吐量是其4倍。
在此基础上,针对非关系型数据库(NoSQL),亚马逊云科技同样“与时俱进”的推出Amazon DynamoDB global tables,这是第一个完全托管的无服务器NoSQL数据库,该数据库现支持多区域强一致性,也能够确保用户的多区域应用程序始终读取最新数据,而无需更改任何应用程序代码。至此,无论行业客户需要SQL还是NoSQL,亚马逊云科技都可以提供在全球可快速扩展的高可用数据库,支持数据强一致支持,并具备极低的读写延迟。
03.
持续引领云原生数据库“再创新”
值得一提的是,今年恰好也是Amazon Aurora发布的十周年,而过去十年亚马逊云科技也一直走在数据库技术创新的最前沿,同时还用自身实力和行动真正践行了那句老话,那就是在云原生数据库领域,亚马逊云科技“一直在引领,从未被超越”。
可以看到,早在2014年,亚马逊云科技基于log架构 (内部代号 Grover),打造了Amazon Aurora,它在提供和开源数据库 MySQL、PostgreSQL 的完好兼容性同时,也能够提供和商业数据库媲美的性能和可用性。
发展至今,在性能方面,Amazon Aurora MySQL能够支持与开源标准MySQL同等配置下五倍的吞吐量,Amazon Aurora PostgreSQL 能够支持与开源标准 PostgreSQL同等配置下三倍的吞吐量。此外,在扩展性的角度,Amazon Aurora在存储与计算、横向与纵向方面都进行了功能的增强和创新。
2018年,Amazon Aurora Serverless正式发布,这是业界最早发布 Serverless 特性的关系型数据库服务,在 Serverless 技术赋能数据库的创新层面就具有“划时代”的意义,特别是与开源托管的数据库相比,它的性价比提高了3-5倍,因此它不仅改变了传统数据库产品的使用方式和管理方式,同时更为企业的“云原生数据基础设施”提供了更高效、更灵活、更安全、更可靠的数据管理解决方案。
与此同时,在“Zero ETL”领域,Amazon Aurora zero-ETL与Amazon Redshift能够实现集成功能,也可以更好地帮助客户近乎实时地分析 PB 级交易数据,由此也让亚马逊云科技在“Zero ETL”的目标,再次迈出“关键一步”。
而进入2024年,Amazon Aurora DSQL的重磅发布,则代表着Amazon Aurora DSQL打破了“CAP”的魔咒,它结合了亚马逊云科技在存算分离(Grover)、大规模动态资源分配(Caspian)和分布式系统时钟同步(Amazon Time-Sync Service)等多项云基础设施技术创新,实现了分布式数据库的“可用性+跨区域部署+数据强一致性”,由此也让分布式数据库进入了一个全新的时代。
总的来看,当前分布式数据库已经在诸如金融、制造、*、电信等领域实现应用和部署,以其弹性易扩容、架构灵活、成本可控等特点,为企业的数智化转型提供了坚实的保障,而随着Amazon Aurora DSQL以及Amazon DynamoDB global tables新功能的重磅推出,无疑将让用户在选择分布式数据库时不再做痛苦的“选择题”,相信由此也将帮助亚马逊云科技更好地推动分布式数据库走入千行万业,同时持续引领云原生数据库“再创新”和“再进化”。
点击“阅读原文”,了解亚马逊云科技 re:Invent 2024全新发布的Amazon Nova Foundation Models。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。
申耀的科技观察,由资深科技媒体人申斯基创办,20+年企业级科技内容传播工作经验,长期专注产业互联网、企业数智化、ICT基础设施、汽车科技等内容的观察和思考。