[
https://issues.apache.org/jira/browse/HBASE-12931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14298534#comment-14298534
]
ChiaPing Tsai commented on HBASE-12931:
---------------------------------------
hi [~lhofhansl]. The test for UPSERT of DefaultMemStore is as follows:
{code:title=Bar.java|borderStyle=solid}
Configuration conf = HBaseConfiguration.create();
memstore = new DefaultMemStore(conf, KeyValue.COMPARATOR);
List<Cell> l = new ArrayList<Cell>();
KeyValue kv1 = KeyValueTestUtil.create("r", "f", "q", 100, "v");
KeyValue kv2 = KeyValueTestUtil.create("r", "f", "q", 101, "v");
kv1.setSequenceId(1); kv2.setSequenceId(1);
l.add(kv1); l.add(kv2);
memstore.upsert(l, 2);
assert(memstore.cellSet.size() == 1);
{code}
The error is occurred in the assert. I think that the size of cellSet should be
1. Did I say it right? thanks
> 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
>
> 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)