当前位置: 代码迷 >> 综合 >> OceanBase 源码解读(十二):事务日志的提交和回放
  详细解决方案

OceanBase 源码解读(十二):事务日志的提交和回放

热度:13   发布时间:2024-01-17 11:32:51.0
作者简介:竹翁,毕业于北京大学, OceanBase 内核研发总监。
原名杨志丰,花名竹翁。近十年来一直在阿里巴巴/蚂蚁金服自主研发分布式系统和数据库的从事研发工作。
致力于设计出先进的 HTAP 数据库系统,打造技术业内标杆、商业取得成功的核心基础设施。在 OceanBase 系统中,他先后负责 OceanBase 的 SQL 引擎,分布式主控模块,多模数据库方向等,负责过 OceanBase 的数据库平台产品研发,近期在负责内核创新研发工作。且竹翁对 C++ 、分布式系统原理、 SQL 查询处理、事务处理、编译技术、工程效率等方面也有着浓厚的兴趣。

OceanBase 的 clog 日志类似于传统数据库的 REDO 日志,这个模块负责在事务提交时持久化事务数据,并实现了基于 Multi-Paxos 的分布式一致性协议。

日志模块的设计理念

与传统关系型数据库的日志模块相比,OceanBase 的日志服务主要有如下几点挑战:

  • 通过Multi_Paxos替换传统的主备同步机制,进而实现系统的高可用和数据的高可靠。

需要支持全球部署,多个副本之间的网络时延达到几十甚至数百 ms。

作为分布式数据库,OceanBase 以 Partition 作为数据同步的基本单位。

单机要求支持十万量级的 Partition,在此基础上,需要支持日志数据的高效写入和读取。

同时,任何功能本身