PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计,系统由 4个核心组件组成。
计算节点(CN, Compute Node)
计算节点是系统的入口,采用无状态设计,包括 SQL 解析器、优化器、执行器等模块。负责数据分布式路由、计算及动态调度,负责分布式事务 2PC 协调、全局二级索引维护等,同时提供 SQL 限流、三权分立等企业级特性。这里面比较特别的就是分布式事务和全局二级索引功能,这是早期DRDS产品的痛点。
存储节点(DN, Data Node)
存储节点负责数据的持久化,基于多数派 Paxos 协议提供数据高可靠、强一致保障,同时通过 MVCC 维护分布式事务可见性。这里面的特别之处应该就是使用Paxos协议实现MySQL的高可用。
元数据服务(GMS, Global Meta Service)
元数据服务负责维护全局强一致的 Table/Schema, Statistics 等系统 Meta 信息,维护账号、权限等安全信息,同时提供全局授时服务(即 TSO)。这个是 PolarDB-X 自己的元数据服务,包含分库分表规则和实例数据库信息。应用不需要再自己存储特殊的 jar 包了。
日志节点(CDC, Change Data Capture)
日志节点提供完全兼容 MySQL Binlog 格式和协议的增量订阅能力,提供兼容 MySQL Replication 协议的主从复制能力。这个也是很实用的功能,方便用户订阅PolarDB-X的日志(BINLOG),它实现了将后端MySQL的Binlog 根据一些事务规则聚合。
还没有评论,来说两句吧...