《云原生一站式数据库技术与实践》——一、云原生分布式数据库PolarDB-X技术架构(1) https://developer.aliyun.com/article/1231705?groupCode=aliyundb
到了云时代,分布式数据库作为云产品为用户提供通用的数据库服务,真正进入商业化发展的阶段,不仅关注扩展性,还关注易用性以及企业级的特性,因此也必然会出现兼容性、数据库运维等能力上的要求。
分布式数据库面临几个较为突出的问题:
• 兼容性:传统数据库的应用如何更便捷的迁移到分布式数据库上?
• 使用门槛:用户有使用分布式数据库的诉求,但是又不希望投入太多学习成本。
• 扩展能力:分布式架构能否实现真正的线性扩展?
• 运维复杂度:分布式系统天然具备复杂性,如何应对运维管理上的挑战?在分布式数据库上保证ACID、保证数据一致性比传统数据库更具难度,比如在数据量巨大的分区表上做DDL或创建索引需要付出高昂的代价。
PolarDB-X 全面兼容MySQL 数据库,包括功能上的兼容和生态上的兼容。
功能上并不追求百分之百的兼容。上图中圆圈为MySQL 的能力边界,涂色的部分是PolarDB-X 目前已经覆盖的能力。部分PolarDB-X 的能力与MySQL 的实际能力依然存在一定差距,也有部分超出了MySQL 的能力。判定兼容性的原则需要以用户诉求为依据,我们会优先覆盖常用功能,对于不常用的功能,会有选择性地支持,并逐步补全。
目前,PolarDB-X 对MySQL 的大部分功能基本已经实现兼容,也包括扩展性的能力,比如存储过程触发器、外键等等在分布式数据库上较难支持的功能,而高可用容灾、高并发读写等方面的能力已经远超出现有MySQL 的能力。
生态的兼容主要利用全局一致的Binlog,即CDC。CDC 是一个高可用集群,能够提供全局一致的Binlog 服务。PolarDB-X 作为分布式数据库,存在很多数据节点,每个数据节点都有日志流。为了保证数据一致,CDC 会对多机上的日志做归并、排序、整流,最终提供与用户事务发生顺序一致的全局Binlog 日志流。日志流完全兼容MySQL 单机Binlog,格式完全一致。下游生态系统消费Binlog 时,可以将其看作单机MySQL 来使用。
分布式系统作为云上的服务,希望为用户提供集中分布式一体化体验。PolarDB-X 提供了标准版和企业版两种形态,两者可以平滑迁移。标准版百分之百兼容单机MySQL,提供了高可用的能力。企业版提供了典型的分布式能力。
《云原生一站式数据库技术与实践》——一、云原生分布式数据库PolarDB-X技术架构(3) https://developer.aliyun.com/article/1231702?groupCode=aliyundb