int numberOfMappedChunks() {
    return this.chunkIdMap.size();
  }
Here we always put the chunk into the {@link ChunkCreator#chunkIdMap} no matter whether the
chunk is pooled or not. <br/>
For {@link CompactingMemStore},because the chunk could only be acquired from
{@link ChunkCreator} through {@link MemStoreLABImpl}, and
{@link CompactingMemStore#indexType} could only be {@link IndexType.CHUNK_MAP} when using
{@link MemStoreLABImpl}, so we must put chunk into this {@link ChunkCreator#chunkIdMap} to
make sure the chunk could be got by chunkId.
<p>
For {@link DefaultMemStore},it is also reasonable to put the chunk in
{@link ChunkCreator#chunkIdMap} because: <br/>
1.When the {@link MemStoreLAB} which created the chunk is not closed, this chunk is used by
the {@link Segment} which references this {@link MemStoreLAB}, so this chunk certainly should
not be GC-ed, putting the chunk in {@link ChunkCreator#chunkIdMap} does not prevent useless
chunk to be GC-ed. <br/>
2.When the {@link MemStoreLAB} which created the chunk is closed, and if the chunk is not
pooled, {@link ChunkCreator#removeChunk} is invoked to remove the chunk from this
{@link ChunkCreator#chunkIdMap}, so there is no memory leak.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ChunkCreator.java