You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2017/12/18 16:32:28 UTC
hbase git commit: HBASE-19521 HBase mob compaction needs to check
hfile version
Repository: hbase
Updated Branches:
refs/heads/master 62b591bdc -> c8bf03f5f
HBASE-19521 HBase mob compaction needs to check hfile version
Signed-off-by: tedyu <yu...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c8bf03f5
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c8bf03f5
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c8bf03f5
Branch: refs/heads/master
Commit: c8bf03f5fb7f039e6458f0a8b1564ab318dda8de
Parents: 62b591b
Author: QilinCao <ca...@zte.com.cn>
Authored: Fri Dec 15 16:11:25 2017 +0800
Committer: tedyu <yu...@gmail.com>
Committed: Mon Dec 18 08:32:18 2017 -0800
----------------------------------------------------------------------
.../hadoop/hbase/master/MasterRpcServices.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8bf03f5/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
index 3e2f0ef..6044d02 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
@@ -54,6 +54,7 @@ import org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil;
import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;
import org.apache.hadoop.hbase.errorhandling.ForeignException;
import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;
+import org.apache.hadoop.hbase.io.hfile.HFile;
import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;
import org.apache.hadoop.hbase.ipc.PriorityFunction;
import org.apache.hadoop.hbase.ipc.QosPriority;
@@ -1626,6 +1627,7 @@ public class MasterRpcServices extends RSRpcServices
TableName tableName = RegionInfo.getTable(regionName);
// if the region is a mob region, do the mob file compaction.
if (MobUtils.isMobRegionName(tableName, regionName)) {
+ checkHFileFormatVersionForMob();
return compactMob(request, tableName);
} else {
return super.compactRegion(controller, request);
@@ -1635,6 +1637,20 @@ public class MasterRpcServices extends RSRpcServices
}
}
+ /**
+ * check configured hfile format version before to do compaction
+ * @throws IOException throw IOException
+ */
+ private void checkHFileFormatVersionForMob() throws IOException {
+ if (HFile.getFormatVersion(master.getConfiguration()) < HFile.MIN_FORMAT_VERSION_WITH_TAGS) {
+ LOG.error("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS
+ + " is required for MOB compaction. Compaction will not run.");
+ throw new IOException("A minimum HFile version of " + HFile.MIN_FORMAT_VERSION_WITH_TAGS
+ + " is required for MOB feature. Consider setting " + HFile.FORMAT_VERSION_KEY
+ + " accordingly.");
+ }
+ }
+
@Override
@QosPriority(priority=HConstants.ADMIN_QOS)
public GetRegionInfoResponse getRegionInfo(final RpcController controller,