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