【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】oceanbase数据库分区和memtable对应关系
2 个赞
一、基本概念回顾
1. 分区(Partition)
- OceanBase 是 分区表架构,数据按分区(例如按 range/hash/list 等)切分,分布在多个 OBServer 节点上。
- 每个分区对应一个 独立的存储与事务单元,拥有自己的日志流(Log Stream)、事务状态、MemTable 列表等。
- 分区是数据存储和事务调度的最小单位。
2. MemTable
- MemTable 是位于内存中的一张“临时表”,用于缓存增量写入的数据。
- 所有的 DML(INSERT、UPDATE、DELETE)操作首先写入 MemTable,然后异步落盘到 SSTable(磁盘)。
- MemTable 是事务的第一个落脚点,也是查询时优先查找的层(MemTable + SSTable 组成 LSM-like 架构)。
二、分区与 MemTable 的对应关系
OceanBase 中:
每个分区(Partition)在内存中维护一组 MemTable(通常是一个链表结构),用来管理该分区最近的增量数据。**
可以这样理解:
概念 | 对应关系 |
---|---|
分区 | 拥有独立的 MemTable 列表 |
MemTable | 属于唯一的一个分区 |
OBServer | 持有多个分区,每个分区都有自己的 MemTable 集合 |
2 个赞
666
学习到了