[
https://issues.apache.org/jira/browse/HBASE-14721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anoop Sam John updated HBASE-14721:
-----------------------------------
Attachment: HBASE-14721_branch-1.patch
Patch for branch-1.
Will commit to branch-1, branch-1.2 and master.
Thanks for the review Stack.
> Memstore add cells - Avoid many garbage
> ---------------------------------------
>
> Key: HBASE-14721
> URL: https://issues.apache.org/jira/browse/HBASE-14721
> Project: HBase
> Issue Type: Improvement
> Reporter: Anoop Sam John
> Assignee: Anoop Sam John
> Fix For: 2.0.0, 1.2.0, 1.3.0
>
> Attachments: HBASE-14721.patch, HBASE-14721_branch-1.patch
>
>
> 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)