Repository: hbase Updated Branches: refs/heads/master 7a699b904 -> 8de30d32d
HBASE-11882 Row level consistency may not be maintained with bulk load and compaction (Jerry He) Signed-off-by: Ramkrishna <ramkrishna.s.vasude...@intel.com> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/8de30d32 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/8de30d32 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/8de30d32 Branch: refs/heads/master Commit: 8de30d32d4d5c86650effadbda72f7ef32a4f15f Parents: 7a699b9 Author: Ramkrishna <ramkrishna.s.vasude...@intel.com> Authored: Fri Sep 5 08:55:53 2014 +0530 Committer: Ramkrishna <ramkrishna.s.vasude...@intel.com> Committed: Fri Sep 5 08:55:53 2014 +0530 ---------------------------------------------------------------------- .../hbase/regionserver/compactions/Compactor.java | 14 +++++++++++--- .../hbase/regionserver/TestHRegionServerBulkLoad.java | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/8de30d32/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java index 2b053a6..7eab275 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java @@ -136,9 +136,17 @@ public abstract class Compactor { fd.maxKeyCount += keyCount; // calculate the latest MVCC readpoint in any of the involved store files Map<byte[], byte[]> fileInfo = r.loadFileInfo(); - byte tmp[] = fileInfo.get(HFileWriterV2.MAX_MEMSTORE_TS_KEY); - if (tmp != null) { - fd.maxMVCCReadpoint = Math.max(fd.maxMVCCReadpoint, Bytes.toLong(tmp)); + byte tmp[] = null; + // Get and set the real MVCCReadpoint for bulk loaded files, which is the + // SeqId number. + if (r.isBulkLoaded()) { + fd.maxMVCCReadpoint = Math.max(fd.maxMVCCReadpoint, r.getSequenceID()); + } + else { + tmp = fileInfo.get(HFileWriterV2.MAX_MEMSTORE_TS_KEY); + if (tmp != null) { + fd.maxMVCCReadpoint = Math.max(fd.maxMVCCReadpoint, Bytes.toLong(tmp)); + } } tmp = fileInfo.get(FileInfo.MAX_TAGS_LEN); if (tmp != null) { http://git-wip-us.apache.org/repos/asf/hbase/blob/8de30d32/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java index 26570d1..efa5a22 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java @@ -115,6 +115,7 @@ public class TestHRegionServerBulkLoad { KeyValue kv = new KeyValue(rowkey(i), family, qualifier, now, value); writer.append(kv); } + writer.appendFileInfo(StoreFile.BULKLOAD_TIME_KEY, Bytes.toBytes(now)); } finally { writer.close(); }