oceanbase数据库v4版本的日知流到底是什么啊

oceanbase数据库v4版本的日知流到底是什么啊,我实在理解不了。

2 个赞

不是clog吗,也就是Oracle中的redolog,mysql的binlog.

1 个赞
  1. 日志流的定义
    日志流(Logstream,LS)是由 OceanBase 数据库自动创建和管理的实体,它代表了一批数据的集合,包括若干 Tablet 和有序的 Redo 日志流。
  2. 日志流的作用
    日志流是事务提交的基本单位,用于记录数据库中的所有变更操作。它是分布式事务的参与者,通过 Paxos 协议实现多副本间的数据同步,保证副本间数据的一致性。
  • 参考文档:片段标题《副本介绍 → 日志流介绍 → 日志流概念》。
  1. 日志流的特点
  • 日志流内的修改可以完成原子提交。
  • 跨多个日志流的事务使用优化的两阶段提交协议完成原子提交。
  • 日志流支持副本迁移和复制,以达到机器管理和系统容灾的目的。
  • 日志流可以抽象为 Tablet 容器,支持添加和管理 Tablet 数据。
  • 参考文档:片段标题《集群架构 → 基本概念 → Logstream》。
  1. 广播日志流
    从 V4.2.0 版本开始,OceanBase 引入了广播日志流的概念。广播日志流会在租户内的每个 OBServer 节点上部署一个副本,保证强一致性读。
1 个赞

@论坛小助手

根据文档库中的信息,日志流(Logstream,LS)是 OceanBase 数据库 V4.0 版本新引入的一个重要概念。以下是关于日志流的详细解释:

1. 日志流的基本定义

日志流是由 OceanBase 数据库自动创建和管理的实体,它代表了一批数据的集合,包括若干 Tablet 和有序的 Redo 日志流。具体来说:

  • Tablet 是数据存储的基本单位,与分区一一对应。
  • Redo 日志 记录了数据库中的所有变更操作。

参考文档:集群架构 → 基本概念 → Logstream


2. 日志流的作用

日志流在 OceanBase 数据库中扮演了多个关键角色:

  • 事务提交单位:在 V4.x 版本中,OceanBase 数据库以日志流为单位进行事务提交,而不是像 V3.x 版本那样以分区为单位提交。这使得事务提交更加高效。
  • 分布式事务参与者:当事务修改跨多个日志流时,采用优化的两阶段提交协议完成原子提交。
  • 高可用保障:通过 Paxos 协议实现了多副本日志同步,保证副本间数据的一致性。

参考文档:副本介绍 → 日志流介绍 → 日志流概念


3. 日志流的组成

一个日志流包含以下内容:

  • 静态数据:存储在磁盘上的 SSTable。
  • 增量数据:存储在内存上的 MemTable。
  • Redo 日志:记录事务的日志。

参考文档:日志流副本概述


4. 日志流的副本

为了保证数据的安全性和高可用性,每个日志流的数据会存储多份,每一份称为一个副本。OceanBase 数据库 V4.x 支持以下类型的副本:

  • 全能型副本(FULL/F):参与 Paxos 成员组,支持选举投票。
  • 只读型副本(READONLY/R):从 V4.2.0 开始支持,不参与 Paxos 成员组。
  • 列存副本(COLUMNSTORE/C):从 V4.3.3 开始支持,不参与 Paxos 成员组。

参考文档:日志流副本概述


5. 日志流的选举机制

日志流的角色(如 Leader 和 Follower)通过选举协议产生。Leader 负责处理写请求并同步日志给 Follower。选举模块、CLOG 模块和 RoleChangeService 模块共同协作完成 Leader 的选举和切换。

参考文档:选举


6. 日志流与备份归档

日志流的 Leader 副本负责日志归档工作。日志归档按照 Log Entry 级别的物理备份进行,周期默认为 2 分钟,提供准实时的备份能力。

参考文档:备份架构 → 日志归档


总结

日志流是 OceanBase 数据库 V4.x 中的核心概念之一,它是事务提交的基本单位,同时也是分布式事务的参与者。通过日志流,OceanBase 数据库在资源、性能和功能上都得到了显著提升。希望以上解释能帮助您更好地理解日志流的概念!如果还有疑问,请随时提问。

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

  1. 副本介绍
  2. 备份架构
  3. 集群架构
  4. 日志流
  5. 选举
  6. oceanbase.DBA_OB_LS
  7. 日志流副本概述
  8. 日志流和副本概述
  9. 分布式事务
  10. Redo 日志