百度智能云团队在今年11-12月特别推出了四期《百度智能云数据库》系列云智公开课,为大家全面地介绍了以云原生数据库GaDB和分布式数据库GaiaDB-X为代表的百度智能云数据库系列产品。
在《百度智能云数据库》系列云智公开课的第二期内容中,百度智能云数据库高级架构师邱学达为我们介绍了云原生数据库的不同技术路线及能力对比,并对比传统单体数据库介绍了云原生数据库的技术差异和挑战,同时深入浅出地解析了GaiaDB在高性能和多级高可用方向上的技术架构。
下文为他的演讲内容整理:
云原生数据库和GaiaDB
目前,云原生数据库已经被各行各业大规模投入到实际生产中,最终的目标都是「单机+分布式一体化」。但在演进路线上,当前主要有两个略有不同的路径。
一种是各大公有云厂商选择的优先保证上云兼容性的路线。它基于存算分离架构,对传统数据库进行改造,典型产品有AWSAurora、阿里云PolarDB、腾讯云TDSQL-C、百度智能云GaiaDB。
数据库作为公有云上的核心基础设施,第一要务是实现用户上云的平滑性。目前像云网络、云主机,云盘都实现了完全透明兼容。云原生数据库也必须实现从语法、使用习惯、再到生态上的全面兼容。因此,基于现有生态做分布式化改造成为了一条首选的演进路线。使用存算分离路线的云原生数据库可以完美兼容传统的使用习惯,为交易类场景提供低延迟的写事务能力,同时读扩展性与存储扩展性借助了分布式存储的池化能力,也得到了很大增强。
另外一种路径是先搭建一套分布式框架,然后在其中填充数据库逻辑。OceanBase和TiDB就是其中两个比较典型的产品。它们将事务的子系统和锁的子系统拆分为单独的模块。计算层通过与这些模块交互,可让多个节点均支持写请求。然后由统一的新事务+锁中心节点来进行仲裁。这样,对需要较多计算资源的写负载场景会有较好的提升。由于事务和锁都需要跨网络进行交互,因此事务延迟相对较高,在锁负载较重的情况下会成为一定的瓶颈。
目前这两个路线并不是泾渭分明,独立发展的,大家都在向着统一的目标演进。因此我们可以看到,存算分离路线在逐渐增强SQL的多级并行能力,同时也在探索和支持多个写节点的库表级/行级的多写能力。同时分布式事务路线也在积极探索在小数据规模下的单机部署架构。
所以在未来,这两个路线会不断融合。业务的数据规模不管多大,都可以平稳快速地运行在数据库系统上,而不需要用户去过分关注分区、索引、事务模型等信息。就像十年前如何在机器之间存储海量小文件还是一个后端研发工程师的必修课,而随着S3存储的出现,用户再也不需要考虑如何通过哈希等方式来保证单个文件夹不会保存太多文件一样。
GaiaDB是从百度智能云多年数据库研发经验积累中逐渐迭代而来。GaiaDB于2020年发布首个版本,首次实现了基于存算分离的大容量存储和快速弹性能力,解决了百度内部的历史库、归档库等大容量存储需求。
紧接着,为了满足集团内大部分核心业务的跨地域热活准入门槛和就近读性能需求,GaiaDB于2021年发布了地域级热活功能。跨地域热活仍然使用存储层同步的方案,同步延迟与吞吐都相较逻辑同步有很大提升,从地域可以实现与主地域接近相同的同步能力,不会成为拖慢整体系统的短板,也不会像逻辑同步那样在大事务等场景下出现延迟飙升的问题。
所以2.0版本上线后,GaiaDB逐渐接入了手百、贴吧、文库等多个核心产品线,解决
本文地址:https://www.rixiy.com/article/11d358f32115f344b3b4.html