- 
每个MemTable多个?转储是个MemTable整体写完才释放内存吗?
- 每个分区或租户级别的MemTable是独立的。当MemTable大小超过一定的阈值时,会触发转储操作。转储是指将当前活跃的MemTable(Active MemTable)中的数据写入到SSTable中,并生成一个新的Active MemTable。旧的MemTable会被冻结(Frozen MemTable),并且在转储成功后释放其占用的内存。
 
 
- 
当触发freeze_trigger_percentage阈值并开始转储,同时生成新memtable时,实际使用内存是否已超过 freeze_trgger_percentage 限值?
- 是的,当达到 
freeze_trigger_percentage 阈值时,会触发转储操作并生成新的Active MemTable。此时,实际使用的内存会超过 freeze_trigger_percentage 限值,因为旧的Frozen MemTable还在占用内存,而新的Active MemTable也在使用内存。 
 
- 
如转储IO慢,第二个memtable 又达到freeze_triger_percentage,哪是生成第三个memtable还是暂停业务?
- 如果转储IO较慢,而新的Active MemTable又达到了 
freeze_trigger_percentage 阈值,会生成第三个Active MemTable。OceanBase会继续处理新的写入请求,直到所有的MemTable都被转储成功并释放内存。 
 
- 
如果freeze_trigger_percentage设置较大,比如99%,在高负载情况下,会发生什么情况?内存受限业务停止?
- 如果将 
freeze_trigger_percentage 设置为较大的值(如99%),在高负载情况下,可能会导致内存不足。当内存使用接近上限时,系统可能会因为内存不足而暂停部分业务操作,甚至导致业务停止。因此,建议根据实际情况合理设置 freeze_trigger_percentage,以确保系统在高负载情况下仍然能够稳定运行。