中间件速查手册
大数据存储内存写缓冲

MemStore 是什么?

写入先进内存并记 WAL,写满再刷成磁盘文件

类比:先在草稿纸上记,攒够一页再誊到正式本子上

写入路径

一次 put 的顺序是:先追加到 WAL(顺序写磁盘,保证不丢)→ 再写 MemStore(内存,按 RowKey 排序)→ 返回成功。用户感知到的延迟是内存级的。

MemStore 达到阈值(默认 128MB,按列族算)后整体刷成一个 HFile。刷盘是异步的,不阻塞写入。

为什么读会变慢

因为同一个 RowKey 的最新值可能散落在 MemStore 和多个 HFile 里,读请求要把它们都查一遍再按时间戳取最新。文件越多,读放大越严重——这就是需要 compaction 的原因。

写性能调优

MemStore 调大能减少刷盘次数、提升写吞吐,但会占用更多堆内存,且刷盘时抖动更大。堆紧张时容易触发 BlockingMemStoreFlush,写入直接被卡住,表现为“突然变慢”。

它出现在这些中间件里

相关问题

相关概念