-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.cloudera.org/r/1224/
-----------------------------------------------------------
Review request for hbase and Ryan Rawson.
Summary
-------
Fix for MemStore.upsert(KeyValue) to start the kvset.tailSet() of potential KVs
to remove at the beginning of entries for the row/family/qualifier combination,
ignoring timestamp to prevent Puts being skipped based on timestamp alone and
masking the ICV.
This addresses bug HBASE-3235.
http://issues.apache.org/jira/browse/HBASE-3235
Diffs
-----
src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java b7409b0
src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java 7640997
Diff: http://review.cloudera.org/r/1224/diff
Testing
-------
Added a new test:
TestHRegion.testIncrementColumnValue_UpdatingInPlace_TimestampClobber() to
recreate the existing failure condition: 1) put to a row/family/qualifier, 2)
ICV to the same row/family/qualifier with the same timestamp. This test fails
consistently without the patch to MemStore.
With the patch to MemStore, the new test case consistently passes. I also ran
TestHRegion 15+ times and saw no more intermittent failures of
testIncrementColumnValue_UpdatingInPlace(). Previously this was failing every
5 or so test runs, so this seems a pretty good indication it's fixed.
I also ran through the full test suite on 0.90 and all passed except for an
error in TestHLog...
Thanks,
Gary