Anoop Sam John created HBASE-14721:
--------------------------------------
Summary: Memstore add cells - Avoid many garbage creation
Key: HBASE-14721
URL: https://issues.apache.org/jira/browse/HBASE-14721
Project: HBase
Issue Type: Bug
Reporter: Anoop Sam John
Assignee: Anoop Sam John
In HRegion# applyFamilyMapToMemstore()
{code}
for (int i=0; i < listSize; i++) {
Cell cell = cells.get(i);
if (cell.getSequenceId() == 0) {
CellUtil.setSequenceId(cell, mvccNum);
}
Pair<Long, Cell> ret = store.add(cell);
size += ret.getFirst();
if(isInReplay) {
// set memstore newly added cells with replay mvcc number
CellUtil.setSequenceId(ret.getSecond(), mvccNum);
}
}
{code}
Previously we used to pass the added Cell reference to some HLog impl classes
and later on the seqId used to get assigned. Now it looks totally changed.
For normal put cells, the assign happen before adding to store.
After addition we can see in replay mode again the mvccNum assign on returned
cell.. This is not really needed as the seq of seqId assign and add to memstore
is changed now.
For the previous way we had to return added Cell also and that is why we were
creating Pair object.Now we can avoid this so we can avoid creation of one Pair
object and a wrapper Long object for every Cell add..
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)