技术篇-HBase 2.0 新特性之 In-Memory Compaction
In-Memory Compaction 是 HBase2.0 中的重要特性之一,通过在内存中引入 LSM 结构,减少多余数据,实现降低 flush 频率和减小写放大的效果。本文根据 HBase2.0 中相关代码以及社区的讨论、博客,介绍 In-Memory Compaction 的使用和实现原理。
1. 原理
1.1 概念和数据结构
In-Memory Compaction 中引入了 MemStore 的一个新的实现 类 CompactingMemStore 。顾名思义,这个类和默认 memst。 CompactingMemStore 中,数据以 segment 作为单位进行组织,一个 memStore 中包含多个 segment。数据写入时首先进入一个被称为 active 的 segment,这个 segment 是可修改的。当 a