You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2017/08/18 04:55:03 UTC
hbase git commit: Finish merge
Repository: hbase
Updated Branches:
refs/heads/HBASE-14070.HLC 675b63d50 -> c9cc17dd7
Finish merge
Changes
- In TestClockWithCluster, Expected logical time after assigning is 1 greater than before
- In TestClockWithCluster, check other RS for meta table since master won't always carry it
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c9cc17dd
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c9cc17dd
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c9cc17dd
Branch: refs/heads/HBASE-14070.HLC
Commit: c9cc17dd7c44b30e2d5bcc053eca14d1ff561abf
Parents: 675b63d
Author: Amit Patel <ia...@gmail.com>
Authored: Thu Aug 17 16:14:49 2017 -0700
Committer: Michael Stack <st...@apache.org>
Committed: Thu Aug 17 21:54:09 2017 -0700
----------------------------------------------------------------------
.../hbase/shaded/protobuf/ProtobufUtil.java | 28 ++++++++++++
.../IncludeAllCompactionQueryMatcher.java | 3 +-
.../hadoop/hbase/TestClockWithCluster.java | 45 +++++++++++++-------
3 files changed, 60 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/c9cc17dd/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
index e020c63..405c438 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
@@ -3365,6 +3365,34 @@ public final class ProtobufUtil {
return builder.build();
}
+ /**
+ * Create a CloseRegionRequest for a given encoded region name
+ *
+ * @param encodedRegionName the name of the region to close
+ * @param nodeTimes list of clock types and timestamps generated by each clock on master
+ * @return a CloseRegionRequest
+ */
+ public static CloseRegionRequest
+ buildCloseRegionRequest(ServerName server, final String encodedRegionName,
+ List<Pair<ClockType, Long>> nodeTimes) {
+ CloseRegionRequest.Builder builder = CloseRegionRequest.newBuilder();
+ RegionSpecifier region = RequestConverter.buildRegionSpecifier(
+ RegionSpecifierType.ENCODED_REGION_NAME,
+ Bytes.toBytes(encodedRegionName));
+ builder.setRegion(region);
+ if (server != null) {
+ builder.setServerStartCode(server.getStartcode());
+ }
+ if (nodeTimes != null) {
+ for (Pair<ClockType, Long> nodeTime : nodeTimes) {
+ builder.addNodeTimesBuilder()
+ .setClockType(ProtobufUtil.toClockType(nodeTime.getFirst()))
+ .setTimestamp(nodeTime.getSecond());
+ }
+ }
+ return builder.build();
+ }
+
public static ProcedureDescription buildProcedureDescription(String signature, String instance,
Map<String, String> props) {
ProcedureDescription.Builder builder =
http://git-wip-us.apache.org/repos/asf/hbase/blob/c9cc17dd/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/IncludeAllCompactionQueryMatcher.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/IncludeAllCompactionQueryMatcher.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/IncludeAllCompactionQueryMatcher.java
index 6937626..2782769 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/IncludeAllCompactionQueryMatcher.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/querymatcher/IncludeAllCompactionQueryMatcher.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.regionserver.querymatcher;
import java.io.IOException;
import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.TimestampType;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.regionserver.ScanInfo;
@@ -35,7 +36,7 @@ public class IncludeAllCompactionQueryMatcher extends MinorCompactionScanQueryMa
}
@Override
- public MatchCode match(Cell cell) throws IOException {
+ public MatchCode match(Cell cell, TimestampType timestampType) throws IOException {
return MatchCode.INCLUDE;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c9cc17dd/hbase-server/src/test/java/org/apache/hadoop/hbase/TestClockWithCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestClockWithCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestClockWithCluster.java
index 0ad3735..c1cca09 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestClockWithCluster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestClockWithCluster.java
@@ -39,6 +39,7 @@ import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.master.HMaster;
+import org.apache.hadoop.hbase.master.LoadBalancer;
import org.apache.hadoop.hbase.master.RegionState;
import org.apache.hadoop.hbase.master.assignment.RegionStates;
import org.apache.hadoop.hbase.regionserver.HRegion;
@@ -190,8 +191,16 @@ public class TestClockWithCluster {
hriOnline = locator.getRegionLocation(HConstants.EMPTY_START_ROW).getRegionInfo();
}
+ boolean tablesOnMaster = true;
+ String confValue = HBTU.getConfiguration().get(LoadBalancer.TABLES_ON_MASTER);
+ if (confValue != null && confValue.equalsIgnoreCase("none")) {
+ tablesOnMaster = false;
+ }
+ List<Region> regionsContainingMeta = tablesOnMaster ?
+ rs.getOnlineRegions() : master.getOnlineRegions();
+
HRegion regionMeta = null;
- for (Region r : master.getOnlineRegions()) {
+ for (Region r : regionsContainingMeta) {
if (r.getRegionInfo().isMetaRegion()) {
regionMeta = ((HRegion) r);
}
@@ -249,20 +258,18 @@ public class TestClockWithCluster {
assertEquals(expectedLogicalTime, masterHLC.getLogicalTime());
timestamps.add(masterHLC.getLogicalTime());
-
admin.assign(hriOnline.getRegionName());
// clock.now() is called 7 times and clock.update() is called 2 times, each call increments
// the logical time by one.
- // 0 [now] Get region info from hbase:meta in HBaseAdmin#unassign
- // 1,2 [now] Update hbase:meta
- // 3 [now] Send unassign region request to region server
- // 4 [update] Update region region server clock upon receiving unassign region request
- // 5 [now] Send region server response back to master
- // 6 [update] Update master clock upon close region response form region server
- // 7,8 [now] Update hbase:meta
- // Assignment has one less call to clock.now() because MasterRpcServices#assignRegion instead
- // gets the region info from assignment manager rather than meta table accessor
- expectedLogicalTime += 9;
+ // 0 [now] Get region info from hbase:meta in HBaseAdmin#assign
+ // 1 [now] Get table state in AssignProcedure#startTransition
+ // 2,3 [now] Update hbase:meta
+ // 4 [now] Send assign region request to region server
+ // 5 [update] Update region region server clock upon receiving assign region request
+ // 6 [now] Send region server response back to master
+ // 7 [update] Update master clock upon close region response from region server
+ // 8,9 [now] Update hbase:meta
+ expectedLogicalTime += 10;
assertEquals(RegionState.State.OPEN, regionStates.getRegionState(hriOnline).getState());
assertEquals(expectedLogicalTime, masterHLC.getLogicalTime());
timestamps.add(masterHLC.getLogicalTime());
@@ -299,8 +306,16 @@ public class TestClockWithCluster {
hriOnline = locator.getRegionLocation(HConstants.EMPTY_START_ROW).getRegionInfo();
}
+ boolean tablesOnMaster = true;
+ String confValue = HBTU.getConfiguration().get(LoadBalancer.TABLES_ON_MASTER);
+ if (confValue != null && confValue.equalsIgnoreCase("none")) {
+ tablesOnMaster = false;
+ }
+ List<Region> regionsContainingMeta = tablesOnMaster ?
+ rs.getOnlineRegions() : master.getOnlineRegions();
+
HRegion regionMeta = null;
- for (Region r : master.getOnlineRegions()) {
+ for (Region r : regionsContainingMeta) {
if (r.getRegionInfo().isMetaRegion()) {
regionMeta = ((HRegion) r);
}
@@ -367,7 +382,7 @@ public class TestClockWithCluster {
admin.assign(hriOnline.getRegionName());
assertEquals(RegionState.State.OPEN, regionStates.getRegionState(hriOnline).getState());
// Verify that region server clock time increased
- assertHLCTime(masterHLC, expectedPhysicalTime, 8);
- assertHLCTime(rsHLC, expectedPhysicalTime, 5);
+ assertHLCTime(masterHLC, expectedPhysicalTime, 9);
+ assertHLCTime(rsHLC, expectedPhysicalTime, 6);
}
}
\ No newline at end of file