PolarDB分布式版在PolarDB分布式版集群中,存储节点(DN)被独立出来作为集中式形态,并完全兼容单机数据库形态(100%兼容MySQL 5.7、8.0)。当业务增长到需要进行分布式扩展时,架构可以原地升级为分布式形态,分布式组件能够无缝对接至原有的存储节点,既无需进行数据迁移,也不需要对应用侧进行改造,从而即可享受分布式所带来的可用性与扩展性。
集中式(标准版)
存储节点 (Data Node,DN)
负责数据的持久化,基于多数派Paxos共识协议提供高可靠和强一致保障,同时自研Lizard分布式事务引擎系统,相比于原生MySQL分布式引擎,具有更可靠的高可用和35%左右的性能提升。
数据多副本架构
为了保证副本间的强一致性(RPO=0),采用多数派Paxos共识协议,每次写入都要获得超过半数节点的确认,即便其中1个节点宕机,集群也仍然能正常提供服务。Paxos算法能够保证副本间的强一致性,彻底解决副本不一致问题。副本可细分为以下角色:
Leader
领导者,负责处理客户端的请求并进行决策,Leader需要维护日志,以保证数据的一致性和可恢复性。
Follower
跟随者,接受Leader的指令并进行执行,当Leader宕机或无法被访问时可以通过竞选成为新的Leader。
Logger
日志者,与Follower角色类似,仅提供多数派协议服务,但不提供数据服务。当Leader宕机或无法被访问时,会参与Leader的竞选投票,短时间内有可能会被选举为Leader,但不会提供数据服务,等待其余多数派Follower角色完成协议日志追平后,Logger会主动让出Leader。
Learner
学习者,只能被动接收系统状态信息,不能参与投票和决策,可以避免对系统的影响。
分布式(企业版)
元数据服务(Global Meta Service,GMS)
负责维护全局强一致的Table/Schema、Statistic等系统Meta信息,以及维护账号和权限等安全信息,同时提供全局时间戳服务(TSO)。
计算节点(Compute Node,CN)
计算节点是系统的入口。采用无状态设计,包括SQL解析器、优化器、执行器等模块。负责数据的分布式路由、计算及动态调度。解决分布式事务的两阶段提交(Two-phase Commit Protocol,简称2PC)协调、分布式DDL执行以及全局索引维护等问题,并提供三权分立等企业级特性。
存储节点 (Data Node,DN)
负责数据的持久化(面向行存数据),基于多数派Paxos共识协议提供高可靠和强一致保障,同时通过多版本并发控制(MVCC)维护分布式事务的可见性。此外,还提供计算下推能力,以满足分布式环境中的计算下推要求(比如Project、Filter、Join、Agg等下推计算)。
列存节点(Columnar)
提供持久化的列存索引,基于对象存储OSS构建列存索引,实时消费分布式事务的Binlog日志,以满足实时更新的需求。同时,结合计算节点可提供列存的快照一致性查询能力。
日志节点(Change Data Capture,CDC)
提供与MySQL Binlog格式和协议完全兼容的增量订阅能力,并具备兼容MySQL Replication协议的主从复制能力。