tongchenkeji 发表于:2023-8-22 11:14:080次点击 已关注取消关注 关注 私信 PolarDB在CN里创建了一个库,在DN里生成了若干了以此表名为后缀的若干个子表是什么原理呢?[阿里云PolarDB] 暂停朗读为您朗读 PolarDB在CN里创建了一个库,在DN里生成了若干了以此表名为后缀的若干个子表是什么原理呢? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 PolarDB# PolarDB665# 云原生数据库 PolarDB905# 关系型数据库2577# 分布式数据库761
飞云觅宙AM 2023-11-27 22:56:45 1 PolarDB-X 2.0 采用的是可水平扩展的 Share-Nothing 架构,系统基本组成单位是节点(即 Node),每个节点又可分为计算节点(即CN)和数据节点(即DN)两个部分。为提供全局 Binlog 能力,PolarDB-X 2.0 在此基础上增加了 CDC 组件,CDC 是一个具备弹性能力的集群。 全局 Binlog 的生成过程可分为三个阶段: CDC 组件从每个 DN 拉取其增量日志,也就是物理 Binlog,之后进行单队列排序、内部事件过滤、DDL 相关的整形等操作,以便为下一阶段提供一个“干净”的增量事件队列,同时若系统发生了扩缩容,CDC 组件会在该阶段自动感知并做相关处理; CDC 组件将所有“干净”的增量事件队列进行合并,期间会对属于同一分布式事务的事件进行合并,并会根据事务时间戳进行全局排序,这样便得到一个全局有序的保障事务完整性的事件队列,同时该阶段还会处理好 DDL 在队列中的位置。之后 CDC 组件会将该队列生成兼容 MySQL Binlog 格式的文件,即全局 Binlog 文件; CN 组件在收到下游订阅全局 Binlog 请求后,会按照 MySQL DUMP 协议将全局 Binlog 发送给下游消费。 经过上面三个阶段,PolarDB-X 2.0 实现了完全兼容 MySQL Binlog 的全局 Binlog 能力。
PolarDB-X 2.0 采用的是可水平扩展的 Share-Nothing 架构,系统基本组成单位是节点(即 Node),每个节点又可分为计算节点(即CN)和数据节点(即DN)两个部分。为提供全局 Binlog 能力,PolarDB-X 2.0 在此基础上增加了 CDC 组件,CDC 是一个具备弹性能力的集群。
全局 Binlog 的生成过程可分为三个阶段:
CDC 组件从每个 DN 拉取其增量日志,也就是物理 Binlog,之后进行单队列排序、内部事件过滤、DDL 相关的整形等操作,以便为下一阶段提供一个“干净”的增量事件队列,同时若系统发生了扩缩容,CDC 组件会在该阶段自动感知并做相关处理;
CDC 组件将所有“干净”的增量事件队列进行合并,期间会对属于同一分布式事务的事件进行合并,并会根据事务时间戳进行全局排序,这样便得到一个全局有序的保障事务完整性的事件队列,同时该阶段还会处理好 DDL 在队列中的位置。之后 CDC 组件会将该队列生成兼容 MySQL Binlog 格式的文件,即全局 Binlog 文件;
CN 组件在收到下游订阅全局 Binlog 请求后,会按照 MySQL DUMP 协议将全局 Binlog 发送给下游消费。
经过上面三个阶段,PolarDB-X 2.0 实现了完全兼容 MySQL Binlog 的全局 Binlog 能力。
这些是物理分库。此回答整理自微信群“阿里云 PolarDB-X开源交流2号群”