关于OB主备租户的一些疑问

【 使用环境 】测试环境
【 OB or 其他组件 】 OB
【 使用版本 】4.3.0
【问题描述】
大佬们,有个问题请教下

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640167#6-title-CDC
在4.3.0 中的系统参考里面可以看到OB 的主备租户流程示意图,这里面有个日志存储服务(Log Storage Service),是不是就是我们所说的Clog?OB 的事务日志存储池?只不过主备租户的这个写入方式略有不同,主租户事务数据是append 写入方式,通过LOG Transport Service 传到备租户,然后再由日志回放服务把事务日志回放到对应节点的MemTable中?

@论坛小助手

1 个赞

OceanBase 数据库中的日志存储服务(Log Storage Service)确实是指 Clog,也就是事务日志存储池。Clog 负责在事务提交时持久化事务数据,确保数据的一致性和持久性。

日志存储服务(Log Storage Service)

  • Clog:即 Commit Log,是 OceanBase 数据库中用于记录 Redo 日志的日志内容。它位于特定目录下(如 store/clog/tenant_xxxx,其中 xxxx 表示租户 ID),文件编号从 0 开始连续递增,单个日志文件的大小为 64MB。Clog 文件按日志流进行组织,每个日志流有自己的一组 Clog 文件,并且各个租户的 Clog 文件是隔离的。

主备租户中的写入方式

  • 主租户:在主租户中,所有的事务数据都会被记录到 Clog 中。当一个事务提交时,Leader 副本会发起 Clog 的落盘,并同时将 Clog 同步到 Follower 副本。只有当 Clog 在多数派副本中落盘后,事务才被视为提交成功。

  • 备租户:备租户通常不直接参与事务的提交过程,而是通过接收主租户的 Clog 日志来保持数据的一致性。备租户中的副本仅作为 Follower 副本,接收并回放来自主租户的 Clog 日志。

主租户事务数据传输到备租户的过程

  1. 事务提交:当一个事务在主租户中提交时,Leader 副本会将事务数据记录到 Clog 中,并同步到 Follower 副本。

  2. Clog 同步:Clog 通过 LOG Transport Service 传输到备租户。这个过程涉及到 Clog 的同步和复制,确保备租户能够接收到最新的事务数据。

  3. Clog 回放:备租户接收到 Clog 后,会在其副本中回放这些日志,将事务数据更新到 MemTable 中。这一步骤确保了备租户的数据与主租户保持一致。

综上所述,OceanBase 数据库中的日志存储服务(Log Storage Service)确实是指 Clog,即事务日志存储池。主租户中的事务数据通过 Clog 的同步和回放机制传输到备租户,并最终回放到 MemTable 中,以保持数据的一致性和持久性。

具体信息可参考以下文档:

1 个赞