基于事务日志提供数据消费或订阅能力,是很多数据库的必备特性,PolarDB-X 2.0也不例外。PolarDB-X 2.0提供了全局Binlog文件来支持消费或订阅数据,本文介绍PolarDB-X 2.0全局Binlog的工作原理及特性。

工作原理

1
PolarDB-X 2.0的全局Binlog(又称逻辑Binlog),是以TSO(Timestamp Oracle)为基准,将多个数据节点(Database Node,简称DN)的物理Binlog进行归并和合并,能够保证分布式事务完整性和全局有序性的Binlog文件。其中:
  • 合并模块会将分散到各个DN的分布式事务Binlog Event,重新合并到一个完整的事务中,并以单机事务的形式输出该事务。
  • 归并模块会以TSO为排序依据,将所有合并后的事务进行全局排序,即把各个DN的偏序集合归并为一个全序集合。

特性

  • 兼容MySQL Binlog文件格式和Dump协议。

    PolarDB-X 2.0的全局Binlog是在DN节点的物理Binlog基础之上生成的,剔除了分布式事务的细节,只保留了单机事务的特性。同时,全局Binlog兼容MySQL Binlog文件格式,在数据订阅方式上也完全兼容MySQL Dump协议,您可以像使用单机MySQL一样来订阅PolarDB-X 2.0的事务日志。

  • 保证分布式事务的完整性和有序性。

    全局Binlog不是将物理Binlog简单地汇总到一起,而是通过合并模块和归并模块保证了分布式事务的完整性和有序性,从而实现高数据一致性。

    例如,在转账场景下,基于全局Binlog能力,接入PolarDB-X 2.0的下游MySQL,可以在任何时刻查询到一致的余额。

  • 提供7x24小时服务能力,运维简单。

    全局Binlog剔除了PolarDB-X 2.0的内部细节(此时您可以将PolarDB-X 2.0看作一个单机MySQL), 来避免实例内部发生的变化对数据订阅链路的影响。PolarDB-X 2.0通过一系列的协议和算法来保证全局Binlog的服务能力,确保实例内部发生的各种变更(如HA切换、增删节点、执行Scale Out或分布式DDL等操作)不会影响数据订阅链路的正常工作。

相关文档

查看全局Binlog