关于 OceanBase 中日志流(Log Stream)与分区的映射关系,以下描述正确的是?

A. 每个分区(Partition)拥有独立的日志流,所有该分区的 Clog 写入、Paxos 选举均在各自的日志流内完成,互不干扰。

B. 一个日志流可以承载多个分区,同一日志流内的所有分区共享 Clog 序号和 Paxos 副本组,写入时共用同一个日志队列。

C. 日志流与分区是一对一的关系,每个日志流只能服务于一个分区,这是为了保证故障隔离的最小粒度。

D. 系统租户(sys )的日志流与用户租户的日志流相互独立,但所有用户租户共享同一个日志流以降低元数据管理开销。

1 个赞

解析
OceanBase V4.x 版本引入了日志流(Log Stream)概念,作为 Paxos 复制和高可用的基本单元。一个日志流可以承载多个分区 ,这些分区共享同一个 Clog 序列和副本组成员。写入任一分区的事务,其 Clog 都会追加到所属日志流中。这种设计减少了 Paxos 组的数量(避免每个分区一个日志流带来的元数据和通信开销),同时保证同一日志流内的分区数据具有相同的高可用属性(副本分布、Leader 位置一致)。

  • A 错误 :每个分区不拥有独立的日志流 ,多个分区共享一个日志流。
  • B 正确 :这是日志流的核心设计:多分区共享日志流,共用一个 Paxos 组和 Clog 队列。
  • C 错误 :日志流与分区是 一对多 的关系。
  • D 错误 :每个租户(包括系统租户和用户租户)拥有独立的日志流集合,租户之间的日志流完全隔离。用户租户之间也不共享日志流。

正确答案:B

1 个赞

选B

正确答案:B

正确答案是 B
核心关系:OceanBase 中,一个日志流(Log Stream)可以承载多个分区(Tablet),同一日志流内的所有分区共享 Clog 序号和 Paxos 副本组,写入时共用同一个日志队列。

其余选项错误
选项 A 错误:每个分区并不拥有独立的日志流,多个分区可以共用同一个日志流。
选项 C 错误:日志流与分区并非一对一关系,而是一对多的映射,这是为了降低日志管理的开销。
选项 D 错误:用户租户并非共享同一个日志流,系统会为不同用户租户分配独立的日志流资源。