hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ChiaPing Tsai (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-12931) The existing KeyValues in memstroe are not removed completely after inserting cell into memStore
Date Tue, 27 Jan 2015 17:26:35 GMT
ChiaPing Tsai created HBASE-12931:
-------------------------------------

             Summary: The existing KeyValues in memstroe are not removed completely after
inserting cell into memStore 
                 Key: HBASE-12931
                 URL: https://issues.apache.org/jira/browse/HBASE-12931
             Project: HBase
          Issue Type: Bug
            Reporter: ChiaPing Tsai
            Priority: Minor
             Fix For: 0.98.0


If I'm not wrong, the UPSERT method of memStore should remove all existing KeyValues except
the newer version.

In memStore,

{code:title=DefaultMemStore.java|borderStyle=solid}
int versIionsVisible = 0;
...
if (cur.getTypeByte() == KeyValue.Type.Put.getCode() &&
            cur.getSequenceId() <= readpoint) {
          if (versionsVisible > 1) {
            // if we get here we have seen at least one version visible to the oldest scanner,
            // which means we can prove that no scanner will see this version

            // false means there was a change, so give us the size.
            long delta = heapSizeChange(cur, true);
            addedSize -= delta;
            this.size.addAndGet(-delta);
            it.remove();
            setOldestEditTimeToNow();
          } else {
            versionsVisible++;
          }
{code}

Does "versionsVisible > 1" should be changed to "versionsVisible >= 1" ?
thanks.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message