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 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) { 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..451fa42 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,8 @@ public class TestHRegionServerBulkLoad { KeyValue kv = new KeyValue(rowkey(i), family, qualifier, now, value); writer.append(kv); } + writer.appendFileInfo(StoreFile.BULKLOAD_TIME_KEY, + Bytes.toBytes(System.currentTimeMillis())); } finally { writer.close(); }