这个说法严谨吗?或者对吗?

这里容易让人理解成一个memtable 一个分区。

在zone内,不是N个partition leader 对应一个unit规格(memstore,也就是memtable)吗?

3 个赞

一个分区对应一个 MemTable, 反过来就不对了。逻辑上 A->B 真 B->A 不一定真。
memstore 跟 memtable 不是对应关系。 memtable 所在的那个内存环境可以称之为 memstore 。memtable 会有很多。

1 个赞

有没有这块资料,就是memstore和memtable的对应关系,几乎看不到这块的资料。

我在想,如果一个资源单元所在的ob上有几千个leader(这个是可能存在的),需要对应几千个memtable,那memstore岂不是碎片化了?

MemStore 是 OceanBase 数据库中用于存储增量数据的内存结构,通过双索引结构(B+ Tree 和 Hash 索引)来提高读写性能
MemTable 是 OceanBase 数据库的内存存储引擎的一部分,用于存储最新的数据更新(插入、更新、删除)。当数据写入时,首先会进入 MemTable

MemStore 是 MemTable 的一部分

memstore是memory_size的默认50%,是一块内存区域。如果memstore还是memtable的一部分,那memtable和memory_size是啥关系?

MemStoreMemTable 的内存管理单元,负责管理MemTable 的内存使用。MemStore 主要用于保存数据库的增量数据(即新写入的数据)。当MemStore 的内存使用达到一定阈值时,OceanBase会触发转储(Dump)操作,将MemTable 中的数据持久化到磁盘(SSTable),从而释放内存空间。