[ https://issues.apache.org/jira/browse/HBASE-21041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16588951#comment-16588951 ]
Allan Yang commented on HBASE-21041: ------------------------------------ {quote} You have this pattern a few times, when is region going to be null? Not saying that this needs to change, but trying to understand for my own edification. {quote} regionServices can be null when testing. Add a comment for this, thanks, [~mdrob] > Memstore's heap size will be decreased to minus zero after flush > ---------------------------------------------------------------- > > Key: HBASE-21041 > URL: https://issues.apache.org/jira/browse/HBASE-21041 > Project: HBase > Issue Type: Bug > Affects Versions: 2.1.0, 2.0.1 > Reporter: Allan Yang > Assignee: Allan Yang > Priority: Major > Attachments: HBASE-21041.branch-2.0.001.patch, > HBASE-21041.branch-2.0.002.patch > > > When creating an active mutable segment (MutableSegment) in memstore, > MutableSegment's deep overheap (208 bytes) was added to its heap size, but > not to the region's memstore's heap size. And so was the immutable > segment(CSLMImmutableSegment) which the mutable segment turned into > (additional 8 bytes ) later. So after one flush, the memstore's heapsize will > be decreased to -216 bytes, The minus number will accumulate after every > flush. > CompactingMemstore has this problem too. > We need to record the overhead for CSLMImmutableSegment and MutableSegment to > the corresponding region's memstore size. > For CellArrayImmutableSegment, CellChunkImmutableSegment and > CompositeImmutableSegment , it is not necessary to do so, because inside > CompactingMemstore, the overheads are already be taken care of when transfer > a CSLMImmutableSegment into them. -- This message was sent by Atlassian JIRA (v7.6.3#76005)