金桔
金币
威望
贡献
回帖0
精华
在线时间 小时
|
昨天看到一篇文章,写的是AWS re:Invent 2024大会上,亚马逊云科技正式宣布推出Amazon Aurora DSQL和Amazon DynamoDB global tables新功能,能够满足一些特殊工作负载对跨区域运行、强一致性、低延迟、高可用性的严苛需求。
通俗地讲,就是能突破数据库一直以来的CAP原则,一个值得庆贺的消息。
CAP定理,相信了解数据库行业的朋友都不陌生,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),这三个要素最多只能同时实现两点,不可能三者兼顾。
CAP原则带来的后果就是,数据库系统要么AP,要么CP,要么AC,但是不存在CAP。CAP原则使得用户在进行分布式架构设计时,必须做出取舍。至于如何取舍,则需要根据业务来抉择。比如金融系统肯定要优先保证数据一致性;而社交媒体则考虑优先保证分区容错性。
由此不难理解为什么数据库有那么多不同类型的产品,因为场景很多。比如:
在一些传统的关系型数据库系统中,一致性和可用性被认为是首要考虑的。在网络分区发生时,系统会选择阻塞请求以保持数据的一致性,确保所有节点看到的数据是相同的。典型代表如MySQL和PostgreSQL,这就是CA系统。
在一些分布式数据库系统中,一致性和分区容错性被认为是首要考虑的。系统将优先保持数据的一致性和容错性,但可能会在网络分区时牺牲一部分可用性。典型代表如Google Bigtable和HBase,这就是CP系统。
至于AP系统:许多大规模互联网应用程序更倾向于追求可用性和分区容错性,而在一致性方面可能做出一些妥协。这种系统在高并发场景下表现更好,但可能会面临数据一致性的挑战。
过去尽管很多数据库厂商一直在这三个维度努力,但始终没有进一步的突破。此次AWS可以说是另辟蹊径了。
从原理来说,很简单。如今云计算的应用,默认其实就是AP系统,缺失的主要是C、一致性,解决一致性问题,核心是降低延迟,只要存在副本,一定存在延迟,无非是延迟多少。
所以,AWS主要解决的也是延迟问题。其通过并行处理命令,类似于现在政府提倡的一次办结、只跑一次,大大降低了频繁交互带来的延迟,再通过时间戳,解决时间漂移的问题,把命令顺序捋顺了,以保证结果一致。
接下来,相信很多数据库产品都能跟进了。有时候问题的解决就是如此简单,当然,AWS产品还需要市场进一步验证,毕竟产品刚上市,但其无疑为数据库发展开创了新的思维。
AWS,厉害。
原文地址:https://zhuanlan.zhihu.com/p/10880716488 |
|