OB术语 基线数据、基线数据版本、多版本基线数据 区别与联系

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】什么是 基线数据、基线数据版本、多版本基线数据?
【复现路径】问题出现前后相关操作

基线数据是整个 SSTable ,还是单指 L2 层(Major SSTable)?

多版本基线数据 是 SSTable的 L0,L1,L2 层数据?

@论坛小助手

2 个赞

@论坛小助手

1 个赞

基线数据、基线数据版本和多版本基线数据是 OceanBase 数据库中的重要概念,它们之间既有区别又有联系。

  1. 基线数据:通常指的是经过合并的、最稳定的数据,存储在 Major SSTable 中。在 OceanBase 中,数据先写入内存中的 MemTable,当 MemTable 达到一定大小后会被转储到磁盘形成 L0 层的 Mini SSTable。随着数据的不断写入,L0 层的数据会逐渐增多,当达到一定阈值时,多个 L0 层的 Mini SSTable 会被合并成 L1 层的 Minor SSTable。最后,在业务低峰期,系统会将所有层级的数据合并成 Major SSTable,这就是基线数据。

  2. 基线数据版本:指不同时间点的基线数据。每次合并生成新的 Major SSTable 时,实际上就是一个新的基线数据版本。这些版本可以用来实现多版本并发控制(MVCC),确保事务的一致性和隔离性。

  3. 多版本基线数据:指的是在不同时间点生成的多个基线数据版本。这些版本共同构成了多版本基线数据,允许在同一个时间点查询到不同版本的数据,从而支持事务的回滚和历史数据的查询。

总结:

  • 基线数据 是指经过合并后的 Major SSTable 中的数据。
  • 基线数据版本 是指不同时间点的基线数据。
  • 多版本基线数据 是指多个不同时间点的基线数据版本,支持多版本并发控制和历史数据查询。

基线数据主要是指 Major SSTable 中的数据,而不是整个 SSTable。多版本基线数据包括 L0、L1 和 L2 层的数据,但主要是 L2 层的 Major SSTable 中的数据。

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

  1. OceanBase 数据库整体架构
  2. 数据库对象存储
2 个赞

学习了