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/04/14 18:51:19 UTC
hbase git commit: HBASE-17888: Added generic methods for updating
metrics on submit and finish of a procedure execution
Repository: hbase
Updated Branches:
refs/heads/master e2a746152 -> c8461456d
HBASE-17888: Added generic methods for updating metrics on submit and finish of a procedure execution
Signed-off-by: Michael Stack <st...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c8461456
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c8461456
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c8461456
Branch: refs/heads/master
Commit: c8461456d0ae81b90d67d36e1e077ae1d01102e5
Parents: e2a7461
Author: Umesh Agashe <ua...@cloudera.com>
Authored: Mon Apr 10 15:32:43 2017 -0700
Committer: Michael Stack <st...@apache.org>
Committed: Fri Apr 14 11:51:08 2017 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/HBaseAdmin.java | 2 +-
.../org/apache/hadoop/hbase/ProcedureInfo.java | 20 +-
.../master/MetricsAssignmentManagerSource.java | 9 +-
.../MetricsAssignmentManagerSourceImpl.java | 9 +-
.../hadoop/hbase/procedure2/Procedure.java | 41 +-
.../hbase/procedure2/ProcedureExecutor.java | 11 +
.../hadoop/hbase/procedure2/ProcedureUtil.java | 10 +-
.../hbase/procedure2/TestProcedureMetrics.java | 254 ++++++++++
.../procedure2/TestStateMachineProcedure.java | 1 -
.../shaded/protobuf/generated/MasterProtos.java | 490 +++++++++----------
.../protobuf/generated/ProcedureProtos.java | 146 +++---
.../src/main/protobuf/Master.proto | 2 +-
.../src/main/protobuf/Procedure.proto | 2 +-
.../hadoop/hbase/master/MasterRpcServices.java | 4 +-
.../master/procedure/ServerCrashProcedure.java | 2 +-
.../hbase-webapps/master/procedures.jsp | 2 +-
.../main/ruby/shell/commands/list_procedures.rb | 6 +-
17 files changed, 652 insertions(+), 359 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
index 155a272..cadd6cc 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
@@ -2114,7 +2114,7 @@ public class HBaseAdmin implements Admin {
procedureState, procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,
procProto.hasException()?
ForeignExceptionUtil.toIOException(procProto.getException()): null,
- procProto.getLastUpdate(), procProto.getStartTime(),
+ procProto.getLastUpdate(), procProto.getSubmittedTime(),
procProto.hasResult()? procProto.getResult().toByteArray() : null);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-common/src/main/java/org/apache/hadoop/hbase/ProcedureInfo.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/ProcedureInfo.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/ProcedureInfo.java
index bb8bb08..6104c22 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/ProcedureInfo.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/ProcedureInfo.java
@@ -39,7 +39,7 @@ public class ProcedureInfo implements Cloneable {
private final NonceKey nonceKey;
private final IOException exception;
private final long lastUpdate;
- private final long startTime;
+ private final long submittedTime;
private final byte[] result;
private long clientAckTime = -1;
@@ -54,7 +54,7 @@ public class ProcedureInfo implements Cloneable {
final NonceKey nonceKey,
final IOException exception,
final long lastUpdate,
- final long startTime,
+ final long submittedTime,
final byte[] result) {
this.procId = procId;
this.procName = procName;
@@ -63,7 +63,7 @@ public class ProcedureInfo implements Cloneable {
this.parentId = parentId;
this.nonceKey = nonceKey;
this.lastUpdate = lastUpdate;
- this.startTime = startTime;
+ this.submittedTime = submittedTime;
// If the procedure is completed, we should treat exception and result differently
this.exception = exception;
@@ -74,7 +74,7 @@ public class ProcedureInfo implements Cloneable {
justification="Intentional; calling super class clone doesn't make sense here.")
public ProcedureInfo clone() {
return new ProcedureInfo(procId, procName, procOwner, procState, parentId, nonceKey,
- exception, lastUpdate, startTime, result);
+ exception, lastUpdate, submittedTime, result);
}
@Override
@@ -96,10 +96,10 @@ public class ProcedureInfo implements Cloneable {
sb.append(procState);
long now = EnvironmentEdgeManager.currentTime();
- sb.append(", startTime=");
- sb.append(StringUtils.formatTime(now - startTime));
+ sb.append(", submittedTime=");
+ sb.append(StringUtils.formatTime(now - submittedTime));
sb.append(" ago, lastUpdate=");
- sb.append(StringUtils.formatTime(now - startTime));
+ sb.append(StringUtils.formatTime(now - submittedTime));
sb.append(" ago");
if (isFailed()) {
@@ -168,8 +168,8 @@ public class ProcedureInfo implements Cloneable {
return result;
}
- public long getStartTime() {
- return startTime;
+ public long getSubmittedTime() {
+ return submittedTime;
}
public long getLastUpdate() {
@@ -177,7 +177,7 @@ public class ProcedureInfo implements Cloneable {
}
public long executionTime() {
- return lastUpdate - startTime;
+ return lastUpdate - submittedTime;
}
@InterfaceAudience.Private
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
index f6c9cb8..fa7bbec 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
@@ -40,7 +40,7 @@ public interface MetricsAssignmentManagerSource extends BaseSource {
/**
* Description
*/
- String METRICS_DESCRIPTION = "Metrics about HBase master assingment manager.";
+ String METRICS_DESCRIPTION = "Metrics about HBase master assignment manager.";
String RIT_COUNT_NAME = "ritCount";
String RIT_COUNT_OVER_THRESHOLD_NAME = "ritCountOverThreshold";
@@ -49,6 +49,13 @@ public interface MetricsAssignmentManagerSource extends BaseSource {
String ASSIGN_TIME_NAME = "assign";
String BULK_ASSIGN_TIME_NAME = "bulkAssign";
+ String RIT_COUNT_DESC = "Current number of Regions In Transition (Gauge).";
+ String RIT_COUNT_OVER_THRESHOLD_DESC =
+ "Current number of Regions In Transition over threshold time (Gauge).";
+ String RIT_OLDEST_AGE_DESC = "Timestamp in milliseconds of the oldest Region In Transition (Gauge).";
+ String RIT_DURATION_DESC =
+ "Total durations in milliseconds for all Regions in Transition (Histogram).";
+
void updateAssignmentTime(long time);
void updateBulkAssignTime(long time);
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java
index ab504f5..faae044 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.java
@@ -46,12 +46,13 @@ public class MetricsAssignmentManagerSourceImpl
}
public void init() {
- ritGauge = metricsRegistry.newGauge(RIT_COUNT_NAME, "", 0l);
- ritCountOverThresholdGauge = metricsRegistry.newGauge(RIT_COUNT_OVER_THRESHOLD_NAME, "", 0l);
- ritOldestAgeGauge = metricsRegistry.newGauge(RIT_OLDEST_AGE_NAME, "", 0l);
+ ritGauge = metricsRegistry.newGauge(RIT_COUNT_NAME, RIT_COUNT_DESC, 0l);
+ ritCountOverThresholdGauge = metricsRegistry.newGauge(RIT_COUNT_OVER_THRESHOLD_NAME,
+ RIT_COUNT_OVER_THRESHOLD_DESC,0l);
+ ritOldestAgeGauge = metricsRegistry.newGauge(RIT_OLDEST_AGE_NAME, RIT_OLDEST_AGE_DESC, 0l);
assignTimeHisto = metricsRegistry.newTimeHistogram(ASSIGN_TIME_NAME);
bulkAssignTimeHisto = metricsRegistry.newTimeHistogram(BULK_ASSIGN_TIME_NAME);
- ritDurationHisto = metricsRegistry.newTimeHistogram(RIT_DURATION_NAME);
+ ritDurationHisto = metricsRegistry.newTimeHistogram(RIT_DURATION_NAME, RIT_DURATION_DESC);
}
@Override
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
index 761ab3a..591c0d0 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java
@@ -38,7 +38,7 @@ import com.google.common.annotations.VisibleForTesting;
/**
* Base Procedure class responsible to handle the Procedure Metadata
- * e.g. state, startTime, lastUpdate, stack-indexes, ...
+ * e.g. state, submittedTime, lastUpdate, stack-indexes, ...
*
* execute() is called each time the procedure is executed.
* it may be called multiple times in case of failure and restart, so the
@@ -73,7 +73,7 @@ public abstract class Procedure<TEnvironment> implements Comparable<Procedure> {
private long parentProcId = NO_PROC_ID;
private long rootProcId = NO_PROC_ID;
private long procId = NO_PROC_ID;
- private long startTime;
+ private long submittedTime;
// runtime state, updated every operation
private ProcedureState state = ProcedureState.INITIALIZING;
@@ -240,6 +240,27 @@ public abstract class Procedure<TEnvironment> implements Comparable<Procedure> {
return true;
}
+ /**
+ * This function will be called just when procedure is submitted for execution. Override this
+ * method to update the metrics at the beginning of the procedure
+ */
+ protected void updateMetricsOnSubmit(final TEnvironment env) {}
+
+ /**
+ * This function will be called just after procedure execution is finished. Override this method
+ * to update metrics at the end of the procedure
+ *
+ * TODO: As any of the sub-procedures on failure rolls back all procedures in the stack,
+ * including successfully finished siblings, this function may get called twice in certain
+ * cases for certain procedures. Explore further if this can be called once.
+ *
+ * @param env
+ * @param runtime - Runtime of the procedure in milliseconds
+ * @param success - true if procedure is completed successfully
+ */
+ protected void updateMetricsOnFinish(final TEnvironment env, final long runtime,
+ boolean success) {}
+
@Override
public String toString() {
// Return the simple String presentation of the procedure.
@@ -287,8 +308,8 @@ public abstract class Procedure<TEnvironment> implements Comparable<Procedure> {
public String toStringDetails() {
final StringBuilder sb = toStringSimpleSB();
- sb.append(" startTime=");
- sb.append(getStartTime());
+ sb.append(" submittedTime=");
+ sb.append(getSubmittedTime());
sb.append(" lastUpdate=");
sb.append(getLastUpdate());
@@ -353,8 +374,8 @@ public abstract class Procedure<TEnvironment> implements Comparable<Procedure> {
return nonceKey;
}
- public long getStartTime() {
- return startTime;
+ public long getSubmittedTime() {
+ return submittedTime;
}
public String getOwner() {
@@ -372,7 +393,7 @@ public abstract class Procedure<TEnvironment> implements Comparable<Procedure> {
@InterfaceAudience.Private
protected void setProcId(final long procId) {
this.procId = procId;
- this.startTime = EnvironmentEdgeManager.currentTime();
+ this.submittedTime = EnvironmentEdgeManager.currentTime();
setState(ProcedureState.RUNNABLE);
}
@@ -414,8 +435,8 @@ public abstract class Procedure<TEnvironment> implements Comparable<Procedure> {
* the creation/deserialization.
*/
@InterfaceAudience.Private
- protected void setStartTime(final long startTime) {
- this.startTime = startTime;
+ protected void setSubmittedTime(final long submittedTime) {
+ this.submittedTime = submittedTime;
}
// ==========================================================================
@@ -478,7 +499,7 @@ public abstract class Procedure<TEnvironment> implements Comparable<Procedure> {
* @return the time elapsed between the last update and the start time of the procedure.
*/
public long elapsedTime() {
- return getLastUpdate() - getStartTime();
+ return getLastUpdate() - getSubmittedTime();
}
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
index 43f5839..1bb6118 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
@@ -831,6 +831,9 @@ public class ProcedureExecutor<TEnvironment> {
private long pushProcedure(final Procedure proc) {
final long currentProcId = proc.getProcId();
+ // Update metrics on start of a procedure
+ proc.updateMetricsOnSubmit(getEnvironment());
+
// Create the rollback stack for the procedure
RootProcedureState stack = new RootProcedureState();
rollbackStack.put(currentProcId, stack);
@@ -1145,6 +1148,9 @@ public class ProcedureExecutor<TEnvironment> {
}
if (proc.isSuccess()) {
+ // update metrics on finishing the procedure
+ proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), true);
+
if (LOG.isDebugEnabled()) {
LOG.debug("Finished " + proc + " in " + StringUtils.humanTimeDiff(proc.elapsedTime()));
}
@@ -1276,6 +1282,10 @@ public class ProcedureExecutor<TEnvironment> {
if (proc.removeStackIndex()) {
proc.setState(ProcedureState.ROLLEDBACK);
+
+ // update metrics on finishing the procedure (fail)
+ proc.updateMetricsOnFinish(getEnvironment(), proc.elapsedTime(), false);
+
if (proc.hasParent()) {
store.delete(proc.getProcId());
procedures.remove(proc.getProcId());
@@ -1444,6 +1454,7 @@ public class ProcedureExecutor<TEnvironment> {
private void submitChildrenProcedures(final Procedure[] subprocs) {
for (int i = 0; i < subprocs.length; ++i) {
final Procedure subproc = subprocs[i];
+ subproc.updateMetricsOnSubmit(getEnvironment());
assert !procedures.containsKey(subproc.getProcId());
procedures.put(subproc.getProcId(), subproc);
scheduler.addFront(subproc);
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
index 372dcac..b4222c7 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureUtil.java
@@ -97,7 +97,7 @@ public final class ProcedureUtil {
.setClassName(proc.getClass().getName())
.setProcId(proc.getProcId())
.setState(proc.getState())
- .setStartTime(proc.getStartTime())
+ .setSubmittedTime(proc.getSubmittedTime())
.setLastUpdate(proc.getLastUpdate());
if (proc.hasParent()) {
@@ -164,7 +164,7 @@ public final class ProcedureUtil {
// set fields
proc.setProcId(proto.getProcId());
proc.setState(proto.getState());
- proc.setStartTime(proto.getStartTime());
+ proc.setSubmittedTime(proto.getSubmittedTime());
proc.setLastUpdate(proto.getLastUpdate());
if (proto.hasParentId()) {
@@ -217,7 +217,7 @@ public final class ProcedureUtil {
builder.setClassName(procInfo.getProcName());
builder.setProcId(procInfo.getProcId());
- builder.setStartTime(procInfo.getStartTime());
+ builder.setSubmittedTime(procInfo.getSubmittedTime());
builder.setState(ProcedureProtos.ProcedureState.valueOf(procInfo.getProcState().name()));
builder.setLastUpdate(procInfo.getLastUpdate());
@@ -257,7 +257,7 @@ public final class ProcedureUtil {
procProto.hasParentId() ? procProto.getParentId() : -1, nonceKey,
procProto.hasException() ?
ForeignExceptionUtil.toIOException(procProto.getException()) : null,
- procProto.getLastUpdate(), procProto.getStartTime(),
+ procProto.getLastUpdate(), procProto.getSubmittedTime(),
procProto.hasResult() ? procProto.getResult().toByteArray() : null);
}
@@ -279,6 +279,6 @@ public final class ProcedureUtil {
convertToProcedureState(proc.getState()),
proc.hasParent() ? proc.getParentProcId() : -1, nonceKey,
exception != null ? exception.unwrapRemoteIOException() : null,
- proc.getLastUpdate(), proc.getStartTime(), proc.getResult());
+ proc.getLastUpdate(), proc.getSubmittedTime(), proc.getResult());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java
new file mode 100644
index 0000000..0a57efa
--- /dev/null
+++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java
@@ -0,0 +1,254 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hbase.procedure2;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HBaseCommonTestingUtility;
+import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;
+import org.apache.hadoop.hbase.testclassification.MasterTests;
+import org.apache.hadoop.hbase.testclassification.SmallTests;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+
+@Category({MasterTests.class, SmallTests.class})
+public class TestProcedureMetrics {
+ private static final Log LOG = LogFactory.getLog(TestProcedureMetrics.class);
+
+ private static final int PROCEDURE_EXECUTOR_SLOTS = 1;
+
+ private TestProcEnv procEnv;
+ private static ProcedureExecutor<TestProcEnv> procExecutor;
+ private ProcedureStore procStore;
+
+ private HBaseCommonTestingUtility htu;
+ private FileSystem fs;
+ private Path testDir;
+ private Path logDir;
+
+ private static int beginCount = 0;
+ private static int successCount = 0;
+ private static int failedCount = 0;
+
+
+ @Before
+ public void setUp() throws IOException {
+ htu = new HBaseCommonTestingUtility();
+ testDir = htu.getDataTestDir();
+ fs = testDir.getFileSystem(htu.getConfiguration());
+ assertTrue(testDir.depth() > 1);
+
+ logDir = new Path(testDir, "proc-logs");
+ procEnv = new TestProcEnv();
+ procStore = ProcedureTestingUtility.createStore(htu.getConfiguration(), fs, logDir);
+ procExecutor = new ProcedureExecutor<TestProcEnv>(htu.getConfiguration(), procEnv, procStore);
+ procExecutor.testing = new ProcedureExecutor.Testing();
+ procStore.start(PROCEDURE_EXECUTOR_SLOTS);
+ procExecutor.start(PROCEDURE_EXECUTOR_SLOTS, true);
+ }
+
+ @After
+ public void tearDown() throws IOException {
+ procExecutor.stop();
+ procStore.stop(false);
+ fs.delete(logDir, true);
+ }
+
+ @Test
+ public void testMetricForSimpleProcedure() throws Exception {
+ // procedure that executes successfully
+ ProcedureMetrics proc = new ProcedureMetrics(true);
+ long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);
+ assertNotEquals("ProcId zero!", 0, id);
+ beginCount++;
+ successCount++;
+ ProcedureTestingUtility.waitProcedure(procExecutor, proc);
+ assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);
+ assertEquals("successCount doesn't match!", successCount, proc.successCount);
+ assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);
+ }
+
+ @Test
+ public void testMetricsForFailedProcedure() throws Exception {
+ // procedure that fails
+ ProcedureMetrics proc = new ProcedureMetrics(false);
+ long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);
+ assertNotEquals("ProcId zero!", 0, id);
+ beginCount++;
+ failedCount++;
+ ProcedureTestingUtility.waitProcedure(procExecutor, proc);
+ assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);
+ assertEquals("successCount doesn't match!", successCount, proc.successCount);
+ assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);
+ }
+
+ @Test
+ public void testMetricForYieldProcedure() throws Exception {
+ // procedure that yields
+ ProcedureMetrics proc = new ProcedureMetrics(true, true);
+ long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);
+ assertNotEquals("ProcId zero!", 0, id);
+ beginCount++;
+ successCount++;
+ ProcedureTestingUtility.waitProcedure(procExecutor, proc);
+ assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);
+ assertEquals("successCount doesn't match!", successCount, proc.successCount);
+ assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);
+ }
+
+ @Test
+ public void testMetricForFailedYiledProcedure() {
+ // procedure that yields and fails
+ ProcedureMetrics proc = new ProcedureMetrics(false, true);
+ long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);
+ assertNotEquals("ProcId zero!", 0, id);
+ beginCount++;
+ failedCount++;
+ ProcedureTestingUtility.waitProcedure(procExecutor, proc);
+ assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);
+ assertEquals("successCount doesn't match!", successCount, proc.successCount);
+ assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);
+ }
+
+ @Test
+ public void testMetricForProcedureWithChildren() throws Exception {
+ // Procedure that yileds with one of the sub-procedures that fail
+ int subProcCount = 10;
+ int failChildIndex = 2;
+ int yiledChildIndex = -1;
+ ProcedureMetrics[] subprocs = new ProcedureMetrics[subProcCount];
+ for (int i = 0; i < subProcCount; ++i) {
+ subprocs[i] = new ProcedureMetrics(failChildIndex != i, yiledChildIndex == i, 3);
+ }
+
+ ProcedureMetrics proc = new ProcedureMetrics(true, true, 3, subprocs);
+ long id = ProcedureTestingUtility.submitAndWait(procExecutor, proc);
+ assertNotEquals("ProcId zero!", 0, id);
+ beginCount += subProcCount + 1;
+ successCount += subProcCount - (failChildIndex + 1);
+ if (failChildIndex >= 0) {
+ failedCount += subProcCount + 1;
+ } else {
+ successCount++;
+ }
+ ProcedureTestingUtility.waitProcedure(procExecutor, proc);
+ assertEquals("beginCount doesn't match!", beginCount, proc.beginCount);
+ assertEquals("successCount doesn't match!", successCount, proc.successCount);
+ assertEquals("failedCont doesn't match!", failedCount, proc.failedCount);
+ }
+
+ private static class TestProcEnv {
+ public boolean toggleKillBeforeStoreUpdate = false;
+ public boolean triggerRollbackOnChild = false;
+ }
+
+ public static class ProcedureMetrics extends SequentialProcedure<TestProcEnv> {
+ public static long beginCount = 0;
+ public static long successCount = 0;
+ public static long failedCount = 0;
+
+ private boolean success;
+ private boolean yield;
+ private int yieldCount;
+ private int yieldNum;
+
+ private ProcedureMetrics[] subprocs = null;
+
+ public ProcedureMetrics() {
+ this(true);
+ }
+
+ public ProcedureMetrics(boolean success) {
+ this(success, true);
+ }
+
+ public ProcedureMetrics(boolean success, boolean yield) {
+ this(success, yield, 1);
+ }
+
+ public ProcedureMetrics(boolean success, boolean yield, int yieldCount) {
+ this(success, yield, yieldCount, null);
+ }
+
+ public ProcedureMetrics(boolean success, ProcedureMetrics[] subprocs) {
+ this(success, false, 1, subprocs);
+ }
+
+ public ProcedureMetrics(boolean success, boolean yield, int yieldCount,
+ ProcedureMetrics[] subprocs) {
+ this.success = success;
+ this.yield = yield;
+ this.yieldCount = yieldCount;
+ this.subprocs = subprocs;
+ yieldNum = 0;
+ }
+
+ @Override
+ protected void updateMetricsOnSubmit(TestProcEnv env) {
+ beginCount++;
+ }
+
+ @Override
+ protected Procedure[] execute(TestProcEnv env) throws ProcedureYieldException,
+ ProcedureSuspendedException, InterruptedException {
+ if (this.yield) {
+ if (yieldNum < yieldCount) {
+ yieldNum++;
+ throw new ProcedureYieldException();
+ }
+ }
+ if (!this.success) {
+ setFailure("Failed", new InterruptedException("Failed"));
+ return null;
+ }
+ return subprocs;
+ }
+
+ @Override
+ protected void rollback(TestProcEnv env) throws IOException, InterruptedException {
+
+ }
+
+ @Override
+ protected boolean abort(TestProcEnv env) {
+ return false;
+ }
+
+ @Override
+ protected void updateMetricsOnFinish(final TestProcEnv env, final long time,
+ boolean success) {
+ if (success) {
+ successCount++;
+ } else {
+ failedCount++;
+ }
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
index 4b36c76..82b767e 100644
--- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
+++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java
@@ -19,7 +19,6 @@
package org.apache.hadoop.hbase.procedure2;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.logging.Log;
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProtos.java
----------------------------------------------------------------------
diff --git a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProtos.java b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProtos.java
index 0071bef..8ff19b2 100644
--- a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProtos.java
+++ b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/MasterProtos.java
@@ -58948,13 +58948,13 @@ public final class MasterProtos {
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse.State getState();
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- boolean hasStartTime();
+ boolean hasSubmittedTime();
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- long getStartTime();
+ long getSubmittedTime();
/**
* <code>optional uint64 last_update = 3;</code>
@@ -59000,7 +59000,7 @@ public final class MasterProtos {
}
private GetProcedureResultResponse() {
state_ = 0;
- startTime_ = 0L;
+ submittedTime_ = 0L;
lastUpdate_ = 0L;
result_ = org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
}
@@ -59046,7 +59046,7 @@ public final class MasterProtos {
}
case 16: {
bitField0_ |= 0x00000002;
- startTime_ = input.readUInt64();
+ submittedTime_ = input.readUInt64();
break;
}
case 24: {
@@ -59212,19 +59212,19 @@ public final class MasterProtos {
return result == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse.State.NOT_FOUND : result;
}
- public static final int START_TIME_FIELD_NUMBER = 2;
- private long startTime_;
+ public static final int SUBMITTED_TIME_FIELD_NUMBER = 2;
+ private long submittedTime_;
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- public boolean hasStartTime() {
+ public boolean hasSubmittedTime() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- public long getStartTime() {
- return startTime_;
+ public long getSubmittedTime() {
+ return submittedTime_;
}
public static final int LAST_UPDATE_FIELD_NUMBER = 3;
@@ -59298,7 +59298,7 @@ public final class MasterProtos {
output.writeEnum(1, state_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
- output.writeUInt64(2, startTime_);
+ output.writeUInt64(2, submittedTime_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeUInt64(3, lastUpdate_);
@@ -59323,7 +59323,7 @@ public final class MasterProtos {
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
- .computeUInt64Size(2, startTime_);
+ .computeUInt64Size(2, submittedTime_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
@@ -59358,10 +59358,10 @@ public final class MasterProtos {
if (hasState()) {
result = result && state_ == other.state_;
}
- result = result && (hasStartTime() == other.hasStartTime());
- if (hasStartTime()) {
- result = result && (getStartTime()
- == other.getStartTime());
+ result = result && (hasSubmittedTime() == other.hasSubmittedTime());
+ if (hasSubmittedTime()) {
+ result = result && (getSubmittedTime()
+ == other.getSubmittedTime());
}
result = result && (hasLastUpdate() == other.hasLastUpdate());
if (hasLastUpdate()) {
@@ -59393,10 +59393,10 @@ public final class MasterProtos {
hash = (37 * hash) + STATE_FIELD_NUMBER;
hash = (53 * hash) + state_;
}
- if (hasStartTime()) {
- hash = (37 * hash) + START_TIME_FIELD_NUMBER;
+ if (hasSubmittedTime()) {
+ hash = (37 * hash) + SUBMITTED_TIME_FIELD_NUMBER;
hash = (53 * hash) + org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.hashLong(
- getStartTime());
+ getSubmittedTime());
}
if (hasLastUpdate()) {
hash = (37 * hash) + LAST_UPDATE_FIELD_NUMBER;
@@ -59532,7 +59532,7 @@ public final class MasterProtos {
super.clear();
state_ = 0;
bitField0_ = (bitField0_ & ~0x00000001);
- startTime_ = 0L;
+ submittedTime_ = 0L;
bitField0_ = (bitField0_ & ~0x00000002);
lastUpdate_ = 0L;
bitField0_ = (bitField0_ & ~0x00000004);
@@ -59575,7 +59575,7 @@ public final class MasterProtos {
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
- result.startTime_ = startTime_;
+ result.submittedTime_ = submittedTime_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
@@ -59637,8 +59637,8 @@ public final class MasterProtos {
if (other.hasState()) {
setState(other.getState());
}
- if (other.hasStartTime()) {
- setStartTime(other.getStartTime());
+ if (other.hasSubmittedTime()) {
+ setSubmittedTime(other.getSubmittedTime());
}
if (other.hasLastUpdate()) {
setLastUpdate(other.getLastUpdate());
@@ -59716,34 +59716,34 @@ public final class MasterProtos {
return this;
}
- private long startTime_ ;
+ private long submittedTime_ ;
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- public boolean hasStartTime() {
+ public boolean hasSubmittedTime() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- public long getStartTime() {
- return startTime_;
+ public long getSubmittedTime() {
+ return submittedTime_;
}
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- public Builder setStartTime(long value) {
+ public Builder setSubmittedTime(long value) {
bitField0_ |= 0x00000002;
- startTime_ = value;
+ submittedTime_ = value;
onChanged();
return this;
}
/**
- * <code>optional uint64 start_time = 2;</code>
+ * <code>optional uint64 submitted_time = 2;</code>
*/
- public Builder clearStartTime() {
+ public Builder clearSubmittedTime() {
bitField0_ = (bitField0_ & ~0x00000002);
- startTime_ = 0L;
+ submittedTime_ = 0L;
onChanged();
return this;
}
@@ -76629,214 +76629,214 @@ public final class MasterProtos {
"Description\"`\n\027IsProcedureDoneResponse\022\023" +
"\n\004done\030\001 \001(\010:\005false\0220\n\010snapshot\030\002 \001(\0132\036.",
"hbase.pb.ProcedureDescription\",\n\031GetProc" +
- "edureResultRequest\022\017\n\007proc_id\030\001 \002(\004\"\371\001\n\032" +
+ "edureResultRequest\022\017\n\007proc_id\030\001 \002(\004\"\375\001\n\032" +
"GetProcedureResultResponse\0229\n\005state\030\001 \002(" +
"\0162*.hbase.pb.GetProcedureResultResponse." +
- "State\022\022\n\nstart_time\030\002 \001(\004\022\023\n\013last_update" +
- "\030\003 \001(\004\022\016\n\006result\030\004 \001(\014\0224\n\texception\030\005 \001(" +
- "\0132!.hbase.pb.ForeignExceptionMessage\"1\n\005" +
- "State\022\r\n\tNOT_FOUND\020\000\022\013\n\007RUNNING\020\001\022\014\n\010FIN" +
- "ISHED\020\002\"M\n\025AbortProcedureRequest\022\017\n\007proc" +
- "_id\030\001 \002(\004\022#\n\025mayInterruptIfRunning\030\002 \001(\010",
- ":\004true\"6\n\026AbortProcedureResponse\022\034\n\024is_p" +
- "rocedure_aborted\030\001 \002(\010\"\027\n\025ListProcedures" +
- "Request\"@\n\026ListProceduresResponse\022&\n\tpro" +
- "cedure\030\001 \003(\0132\023.hbase.pb.Procedure\"\315\001\n\017Se" +
- "tQuotaRequest\022\021\n\tuser_name\030\001 \001(\t\022\022\n\nuser" +
- "_group\030\002 \001(\t\022\021\n\tnamespace\030\003 \001(\t\022\'\n\ntable" +
- "_name\030\004 \001(\0132\023.hbase.pb.TableName\022\022\n\nremo" +
- "ve_all\030\005 \001(\010\022\026\n\016bypass_globals\030\006 \001(\010\022+\n\010" +
- "throttle\030\007 \001(\0132\031.hbase.pb.ThrottleReques" +
- "t\"\022\n\020SetQuotaResponse\"J\n\037MajorCompaction",
- "TimestampRequest\022\'\n\ntable_name\030\001 \002(\0132\023.h" +
- "base.pb.TableName\"U\n(MajorCompactionTime" +
- "stampForRegionRequest\022)\n\006region\030\001 \002(\0132\031." +
- "hbase.pb.RegionSpecifier\"@\n MajorCompact" +
- "ionTimestampResponse\022\034\n\024compaction_times" +
- "tamp\030\001 \002(\003\"\035\n\033SecurityCapabilitiesReques" +
- "t\"\354\001\n\034SecurityCapabilitiesResponse\022G\n\014ca" +
- "pabilities\030\001 \003(\01621.hbase.pb.SecurityCapa" +
- "bilitiesResponse.Capability\"\202\001\n\nCapabili" +
- "ty\022\031\n\025SIMPLE_AUTHENTICATION\020\000\022\031\n\025SECURE_",
- "AUTHENTICATION\020\001\022\021\n\rAUTHORIZATION\020\002\022\026\n\022C" +
- "ELL_AUTHORIZATION\020\003\022\023\n\017CELL_VISIBILITY\020\004" +
- "\"\"\n ListDrainingRegionServersRequest\"N\n!" +
- "ListDrainingRegionServersResponse\022)\n\013ser" +
- "ver_name\030\001 \003(\0132\024.hbase.pb.ServerName\"F\n\031" +
- "DrainRegionServersRequest\022)\n\013server_name" +
- "\030\001 \003(\0132\024.hbase.pb.ServerName\"\034\n\032DrainReg" +
- "ionServersResponse\"P\n#RemoveDrainFromReg" +
- "ionServersRequest\022)\n\013server_name\030\001 \003(\0132\024" +
- ".hbase.pb.ServerName\"&\n$RemoveDrainFromR",
- "egionServersResponse*(\n\020MasterSwitchType" +
- "\022\t\n\005SPLIT\020\000\022\t\n\005MERGE\020\0012\3013\n\rMasterService" +
- "\022e\n\024GetSchemaAlterStatus\022%.hbase.pb.GetS" +
- "chemaAlterStatusRequest\032&.hbase.pb.GetSc" +
- "hemaAlterStatusResponse\022b\n\023GetTableDescr" +
- "iptors\022$.hbase.pb.GetTableDescriptorsReq" +
- "uest\032%.hbase.pb.GetTableDescriptorsRespo" +
- "nse\022P\n\rGetTableNames\022\036.hbase.pb.GetTable" +
- "NamesRequest\032\037.hbase.pb.GetTableNamesRes" +
- "ponse\022Y\n\020GetClusterStatus\022!.hbase.pb.Get",
- "ClusterStatusRequest\032\".hbase.pb.GetClust" +
- "erStatusResponse\022V\n\017IsMasterRunning\022 .hb" +
- "ase.pb.IsMasterRunningRequest\032!.hbase.pb" +
- ".IsMasterRunningResponse\022D\n\tAddColumn\022\032." +
- "hbase.pb.AddColumnRequest\032\033.hbase.pb.Add" +
- "ColumnResponse\022M\n\014DeleteColumn\022\035.hbase.p" +
- "b.DeleteColumnRequest\032\036.hbase.pb.DeleteC" +
- "olumnResponse\022M\n\014ModifyColumn\022\035.hbase.pb" +
- ".ModifyColumnRequest\032\036.hbase.pb.ModifyCo" +
- "lumnResponse\022G\n\nMoveRegion\022\033.hbase.pb.Mo",
- "veRegionRequest\032\034.hbase.pb.MoveRegionRes" +
- "ponse\022\\\n\021MergeTableRegions\022\".hbase.pb.Me" +
- "rgeTableRegionsRequest\032#.hbase.pb.MergeT" +
- "ableRegionsResponse\022M\n\014AssignRegion\022\035.hb" +
- "ase.pb.AssignRegionRequest\032\036.hbase.pb.As" +
- "signRegionResponse\022S\n\016UnassignRegion\022\037.h" +
- "base.pb.UnassignRegionRequest\032 .hbase.pb" +
- ".UnassignRegionResponse\022P\n\rOfflineRegion" +
- "\022\036.hbase.pb.OfflineRegionRequest\032\037.hbase" +
- ".pb.OfflineRegionResponse\022J\n\013DeleteTable",
- "\022\034.hbase.pb.DeleteTableRequest\032\035.hbase.p" +
- "b.DeleteTableResponse\022P\n\rtruncateTable\022\036" +
- ".hbase.pb.TruncateTableRequest\032\037.hbase.p" +
- "b.TruncateTableResponse\022J\n\013EnableTable\022\034" +
- ".hbase.pb.EnableTableRequest\032\035.hbase.pb." +
- "EnableTableResponse\022M\n\014DisableTable\022\035.hb" +
- "ase.pb.DisableTableRequest\032\036.hbase.pb.Di" +
- "sableTableResponse\022J\n\013ModifyTable\022\034.hbas" +
- "e.pb.ModifyTableRequest\032\035.hbase.pb.Modif" +
- "yTableResponse\022J\n\013CreateTable\022\034.hbase.pb",
- ".CreateTableRequest\032\035.hbase.pb.CreateTab" +
- "leResponse\022A\n\010Shutdown\022\031.hbase.pb.Shutdo" +
- "wnRequest\032\032.hbase.pb.ShutdownResponse\022G\n" +
- "\nStopMaster\022\033.hbase.pb.StopMasterRequest" +
- "\032\034.hbase.pb.StopMasterResponse\022h\n\031IsMast" +
- "erInMaintenanceMode\022$.hbase.pb.IsInMaint" +
- "enanceModeRequest\032%.hbase.pb.IsInMainten" +
- "anceModeResponse\022>\n\007Balance\022\030.hbase.pb.B" +
- "alanceRequest\032\031.hbase.pb.BalanceResponse" +
- "\022_\n\022SetBalancerRunning\022#.hbase.pb.SetBal",
- "ancerRunningRequest\032$.hbase.pb.SetBalanc" +
- "erRunningResponse\022\\\n\021IsBalancerEnabled\022\"" +
- ".hbase.pb.IsBalancerEnabledRequest\032#.hba" +
- "se.pb.IsBalancerEnabledResponse\022k\n\026SetSp" +
- "litOrMergeEnabled\022\'.hbase.pb.SetSplitOrM" +
- "ergeEnabledRequest\032(.hbase.pb.SetSplitOr" +
- "MergeEnabledResponse\022h\n\025IsSplitOrMergeEn" +
- "abled\022&.hbase.pb.IsSplitOrMergeEnabledRe" +
- "quest\032\'.hbase.pb.IsSplitOrMergeEnabledRe" +
- "sponse\022D\n\tNormalize\022\032.hbase.pb.Normalize",
- "Request\032\033.hbase.pb.NormalizeResponse\022e\n\024" +
- "SetNormalizerRunning\022%.hbase.pb.SetNorma" +
- "lizerRunningRequest\032&.hbase.pb.SetNormal" +
- "izerRunningResponse\022b\n\023IsNormalizerEnabl" +
- "ed\022$.hbase.pb.IsNormalizerEnabledRequest" +
- "\032%.hbase.pb.IsNormalizerEnabledResponse\022" +
- "S\n\016RunCatalogScan\022\037.hbase.pb.RunCatalogS" +
- "canRequest\032 .hbase.pb.RunCatalogScanResp" +
- "onse\022e\n\024EnableCatalogJanitor\022%.hbase.pb." +
- "EnableCatalogJanitorRequest\032&.hbase.pb.E",
- "nableCatalogJanitorResponse\022n\n\027IsCatalog" +
- "JanitorEnabled\022(.hbase.pb.IsCatalogJanit" +
- "orEnabledRequest\032).hbase.pb.IsCatalogJan" +
- "itorEnabledResponse\022V\n\017RunCleanerChore\022 " +
- ".hbase.pb.RunCleanerChoreRequest\032!.hbase" +
- ".pb.RunCleanerChoreResponse\022k\n\026SetCleane" +
- "rChoreRunning\022\'.hbase.pb.SetCleanerChore" +
- "RunningRequest\032(.hbase.pb.SetCleanerChor" +
- "eRunningResponse\022h\n\025IsCleanerChoreEnable" +
- "d\022&.hbase.pb.IsCleanerChoreEnabledReques",
- "t\032\'.hbase.pb.IsCleanerChoreEnabledRespon" +
- "se\022^\n\021ExecMasterService\022#.hbase.pb.Copro" +
- "cessorServiceRequest\032$.hbase.pb.Coproces" +
- "sorServiceResponse\022A\n\010Snapshot\022\031.hbase.p" +
- "b.SnapshotRequest\032\032.hbase.pb.SnapshotRes" +
- "ponse\022h\n\025GetCompletedSnapshots\022&.hbase.p" +
- "b.GetCompletedSnapshotsRequest\032\'.hbase.p" +
- "b.GetCompletedSnapshotsResponse\022S\n\016Delet" +
- "eSnapshot\022\037.hbase.pb.DeleteSnapshotReque" +
- "st\032 .hbase.pb.DeleteSnapshotResponse\022S\n\016",
- "IsSnapshotDone\022\037.hbase.pb.IsSnapshotDone" +
- "Request\032 .hbase.pb.IsSnapshotDoneRespons" +
- "e\022V\n\017RestoreSnapshot\022 .hbase.pb.RestoreS" +
- "napshotRequest\032!.hbase.pb.RestoreSnapsho" +
- "tResponse\022P\n\rExecProcedure\022\036.hbase.pb.Ex" +
- "ecProcedureRequest\032\037.hbase.pb.ExecProced" +
- "ureResponse\022W\n\024ExecProcedureWithRet\022\036.hb" +
- "ase.pb.ExecProcedureRequest\032\037.hbase.pb.E" +
- "xecProcedureResponse\022V\n\017IsProcedureDone\022" +
- " .hbase.pb.IsProcedureDoneRequest\032!.hbas",
- "e.pb.IsProcedureDoneResponse\022V\n\017ModifyNa" +
- "mespace\022 .hbase.pb.ModifyNamespaceReques" +
- "t\032!.hbase.pb.ModifyNamespaceResponse\022V\n\017" +
- "CreateNamespace\022 .hbase.pb.CreateNamespa" +
- "ceRequest\032!.hbase.pb.CreateNamespaceResp" +
- "onse\022V\n\017DeleteNamespace\022 .hbase.pb.Delet" +
- "eNamespaceRequest\032!.hbase.pb.DeleteNames" +
- "paceResponse\022k\n\026GetNamespaceDescriptor\022\'" +
- ".hbase.pb.GetNamespaceDescriptorRequest\032" +
- "(.hbase.pb.GetNamespaceDescriptorRespons",
- "e\022q\n\030ListNamespaceDescriptors\022).hbase.pb" +
- ".ListNamespaceDescriptorsRequest\032*.hbase" +
- ".pb.ListNamespaceDescriptorsResponse\022\206\001\n" +
- "\037ListTableDescriptorsByNamespace\0220.hbase" +
- ".pb.ListTableDescriptorsByNamespaceReque" +
- "st\0321.hbase.pb.ListTableDescriptorsByName" +
- "spaceResponse\022t\n\031ListTableNamesByNamespa" +
- "ce\022*.hbase.pb.ListTableNamesByNamespaceR" +
- "equest\032+.hbase.pb.ListTableNamesByNamesp" +
- "aceResponse\022P\n\rGetTableState\022\036.hbase.pb.",
- "GetTableStateRequest\032\037.hbase.pb.GetTable" +
- "StateResponse\022A\n\010SetQuota\022\031.hbase.pb.Set" +
- "QuotaRequest\032\032.hbase.pb.SetQuotaResponse" +
- "\022x\n\037getLastMajorCompactionTimestamp\022).hb" +
- "ase.pb.MajorCompactionTimestampRequest\032*" +
- ".hbase.pb.MajorCompactionTimestampRespon" +
- "se\022\212\001\n(getLastMajorCompactionTimestampFo" +
- "rRegion\0222.hbase.pb.MajorCompactionTimest" +
- "ampForRegionRequest\032*.hbase.pb.MajorComp" +
- "actionTimestampResponse\022_\n\022getProcedureR",
- "esult\022#.hbase.pb.GetProcedureResultReque" +
- "st\032$.hbase.pb.GetProcedureResultResponse" +
- "\022h\n\027getSecurityCapabilities\022%.hbase.pb.S" +
- "ecurityCapabilitiesRequest\032&.hbase.pb.Se" +
- "curityCapabilitiesResponse\022S\n\016AbortProce" +
- "dure\022\037.hbase.pb.AbortProcedureRequest\032 ." +
- "hbase.pb.AbortProcedureResponse\022S\n\016ListP" +
- "rocedures\022\037.hbase.pb.ListProceduresReque" +
- "st\032 .hbase.pb.ListProceduresResponse\022_\n\022" +
- "AddReplicationPeer\022#.hbase.pb.AddReplica",
- "tionPeerRequest\032$.hbase.pb.AddReplicatio" +
- "nPeerResponse\022h\n\025RemoveReplicationPeer\022&" +
- ".hbase.pb.RemoveReplicationPeerRequest\032\'" +
- ".hbase.pb.RemoveReplicationPeerResponse\022" +
- "h\n\025EnableReplicationPeer\022&.hbase.pb.Enab" +
- "leReplicationPeerRequest\032\'.hbase.pb.Enab" +
- "leReplicationPeerResponse\022k\n\026DisableRepl" +
- "icationPeer\022\'.hbase.pb.DisableReplicatio" +
- "nPeerRequest\032(.hbase.pb.DisableReplicati" +
- "onPeerResponse\022q\n\030GetReplicationPeerConf",
- "ig\022).hbase.pb.GetReplicationPeerConfigRe" +
- "quest\032*.hbase.pb.GetReplicationPeerConfi" +
- "gResponse\022z\n\033UpdateReplicationPeerConfig" +
- "\022,.hbase.pb.UpdateReplicationPeerConfigR" +
- "equest\032-.hbase.pb.UpdateReplicationPeerC" +
- "onfigResponse\022e\n\024ListReplicationPeers\022%." +
- "hbase.pb.ListReplicationPeersRequest\032&.h" +
- "base.pb.ListReplicationPeersResponse\022t\n\031" +
- "listDrainingRegionServers\022*.hbase.pb.Lis" +
- "tDrainingRegionServersRequest\032+.hbase.pb",
- ".ListDrainingRegionServersResponse\022_\n\022dr" +
- "ainRegionServers\022#.hbase.pb.DrainRegionS" +
- "erversRequest\032$.hbase.pb.DrainRegionServ" +
- "ersResponse\022}\n\034removeDrainFromRegionServ" +
- "ers\022-.hbase.pb.RemoveDrainFromRegionServ" +
- "ersRequest\032..hbase.pb.RemoveDrainFromReg" +
- "ionServersResponseBI\n1org.apache.hadoop." +
- "hbase.shaded.protobuf.generatedB\014MasterP" +
- "rotosH\001\210\001\001\240\001\001"
+ "State\022\026\n\016submitted_time\030\002 \001(\004\022\023\n\013last_up" +
+ "date\030\003 \001(\004\022\016\n\006result\030\004 \001(\014\0224\n\texception\030" +
+ "\005 \001(\0132!.hbase.pb.ForeignExceptionMessage" +
+ "\"1\n\005State\022\r\n\tNOT_FOUND\020\000\022\013\n\007RUNNING\020\001\022\014\n" +
+ "\010FINISHED\020\002\"M\n\025AbortProcedureRequest\022\017\n\007" +
+ "proc_id\030\001 \002(\004\022#\n\025mayInterruptIfRunning\030\002",
+ " \001(\010:\004true\"6\n\026AbortProcedureResponse\022\034\n\024" +
+ "is_procedure_aborted\030\001 \002(\010\"\027\n\025ListProced" +
+ "uresRequest\"@\n\026ListProceduresResponse\022&\n" +
+ "\tprocedure\030\001 \003(\0132\023.hbase.pb.Procedure\"\315\001" +
+ "\n\017SetQuotaRequest\022\021\n\tuser_name\030\001 \001(\t\022\022\n\n" +
+ "user_group\030\002 \001(\t\022\021\n\tnamespace\030\003 \001(\t\022\'\n\nt" +
+ "able_name\030\004 \001(\0132\023.hbase.pb.TableName\022\022\n\n" +
+ "remove_all\030\005 \001(\010\022\026\n\016bypass_globals\030\006 \001(\010" +
+ "\022+\n\010throttle\030\007 \001(\0132\031.hbase.pb.ThrottleRe" +
+ "quest\"\022\n\020SetQuotaResponse\"J\n\037MajorCompac",
+ "tionTimestampRequest\022\'\n\ntable_name\030\001 \002(\013" +
+ "2\023.hbase.pb.TableName\"U\n(MajorCompaction" +
+ "TimestampForRegionRequest\022)\n\006region\030\001 \002(" +
+ "\0132\031.hbase.pb.RegionSpecifier\"@\n MajorCom" +
+ "pactionTimestampResponse\022\034\n\024compaction_t" +
+ "imestamp\030\001 \002(\003\"\035\n\033SecurityCapabilitiesRe" +
+ "quest\"\354\001\n\034SecurityCapabilitiesResponse\022G" +
+ "\n\014capabilities\030\001 \003(\01621.hbase.pb.Security" +
+ "CapabilitiesResponse.Capability\"\202\001\n\nCapa" +
+ "bility\022\031\n\025SIMPLE_AUTHENTICATION\020\000\022\031\n\025SEC",
+ "URE_AUTHENTICATION\020\001\022\021\n\rAUTHORIZATION\020\002\022" +
+ "\026\n\022CELL_AUTHORIZATION\020\003\022\023\n\017CELL_VISIBILI" +
+ "TY\020\004\"\"\n ListDrainingRegionServersRequest" +
+ "\"N\n!ListDrainingRegionServersResponse\022)\n" +
+ "\013server_name\030\001 \003(\0132\024.hbase.pb.ServerName" +
+ "\"F\n\031DrainRegionServersRequest\022)\n\013server_" +
+ "name\030\001 \003(\0132\024.hbase.pb.ServerName\"\034\n\032Drai" +
+ "nRegionServersResponse\"P\n#RemoveDrainFro" +
+ "mRegionServersRequest\022)\n\013server_name\030\001 \003" +
+ "(\0132\024.hbase.pb.ServerName\"&\n$RemoveDrainF",
+ "romRegionServersResponse*(\n\020MasterSwitch" +
+ "Type\022\t\n\005SPLIT\020\000\022\t\n\005MERGE\020\0012\3013\n\rMasterSer" +
+ "vice\022e\n\024GetSchemaAlterStatus\022%.hbase.pb." +
+ "GetSchemaAlterStatusRequest\032&.hbase.pb.G" +
+ "etSchemaAlterStatusResponse\022b\n\023GetTableD" +
+ "escriptors\022$.hbase.pb.GetTableDescriptor" +
+ "sRequest\032%.hbase.pb.GetTableDescriptorsR" +
+ "esponse\022P\n\rGetTableNames\022\036.hbase.pb.GetT" +
+ "ableNamesRequest\032\037.hbase.pb.GetTableName" +
+ "sResponse\022Y\n\020GetClusterStatus\022!.hbase.pb",
+ ".GetClusterStatusRequest\032\".hbase.pb.GetC" +
+ "lusterStatusResponse\022V\n\017IsMasterRunning\022" +
+ " .hbase.pb.IsMasterRunningRequest\032!.hbas" +
+ "e.pb.IsMasterRunningResponse\022D\n\tAddColum" +
+ "n\022\032.hbase.pb.AddColumnRequest\032\033.hbase.pb" +
+ ".AddColumnResponse\022M\n\014DeleteColumn\022\035.hba" +
+ "se.pb.DeleteColumnRequest\032\036.hbase.pb.Del" +
+ "eteColumnResponse\022M\n\014ModifyColumn\022\035.hbas" +
+ "e.pb.ModifyColumnRequest\032\036.hbase.pb.Modi" +
+ "fyColumnResponse\022G\n\nMoveRegion\022\033.hbase.p",
+ "b.MoveRegionRequest\032\034.hbase.pb.MoveRegio" +
+ "nResponse\022\\\n\021MergeTableRegions\022\".hbase.p" +
+ "b.MergeTableRegionsRequest\032#.hbase.pb.Me" +
+ "rgeTableRegionsResponse\022M\n\014AssignRegion\022" +
+ "\035.hbase.pb.AssignRegionRequest\032\036.hbase.p" +
+ "b.AssignRegionResponse\022S\n\016UnassignRegion" +
+ "\022\037.hbase.pb.UnassignRegionRequest\032 .hbas" +
+ "e.pb.UnassignRegionResponse\022P\n\rOfflineRe" +
+ "gion\022\036.hbase.pb.OfflineRegionRequest\032\037.h" +
+ "base.pb.OfflineRegionResponse\022J\n\013DeleteT",
+ "able\022\034.hbase.pb.DeleteTableRequest\032\035.hba" +
+ "se.pb.DeleteTableResponse\022P\n\rtruncateTab" +
+ "le\022\036.hbase.pb.TruncateTableRequest\032\037.hba" +
+ "se.pb.TruncateTableResponse\022J\n\013EnableTab" +
+ "le\022\034.hbase.pb.EnableTableRequest\032\035.hbase" +
+ ".pb.EnableTableResponse\022M\n\014DisableTable\022" +
+ "\035.hbase.pb.DisableTableRequest\032\036.hbase.p" +
+ "b.DisableTableResponse\022J\n\013ModifyTable\022\034." +
+ "hbase.pb.ModifyTableRequest\032\035.hbase.pb.M" +
+ "odifyTableResponse\022J\n\013CreateTable\022\034.hbas",
+ "e.pb.CreateTableRequest\032\035.hbase.pb.Creat" +
+ "eTableResponse\022A\n\010Shutdown\022\031.hbase.pb.Sh" +
+ "utdownRequest\032\032.hbase.pb.ShutdownRespons" +
+ "e\022G\n\nStopMaster\022\033.hbase.pb.StopMasterReq" +
+ "uest\032\034.hbase.pb.StopMasterResponse\022h\n\031Is" +
+ "MasterInMaintenanceMode\022$.hbase.pb.IsInM" +
+ "aintenanceModeRequest\032%.hbase.pb.IsInMai" +
+ "ntenanceModeResponse\022>\n\007Balance\022\030.hbase." +
+ "pb.BalanceRequest\032\031.hbase.pb.BalanceResp" +
+ "onse\022_\n\022SetBalancerRunning\022#.hbase.pb.Se",
+ "tBalancerRunningRequest\032$.hbase.pb.SetBa" +
+ "lancerRunningResponse\022\\\n\021IsBalancerEnabl" +
+ "ed\022\".hbase.pb.IsBalancerEnabledRequest\032#" +
+ ".hbase.pb.IsBalancerEnabledResponse\022k\n\026S" +
+ "etSplitOrMergeEnabled\022\'.hbase.pb.SetSpli" +
+ "tOrMergeEnabledRequest\032(.hbase.pb.SetSpl" +
+ "itOrMergeEnabledResponse\022h\n\025IsSplitOrMer" +
+ "geEnabled\022&.hbase.pb.IsSplitOrMergeEnabl" +
+ "edRequest\032\'.hbase.pb.IsSplitOrMergeEnabl" +
+ "edResponse\022D\n\tNormalize\022\032.hbase.pb.Norma",
+ "lizeRequest\032\033.hbase.pb.NormalizeResponse" +
+ "\022e\n\024SetNormalizerRunning\022%.hbase.pb.SetN" +
+ "ormalizerRunningRequest\032&.hbase.pb.SetNo" +
+ "rmalizerRunningResponse\022b\n\023IsNormalizerE" +
+ "nabled\022$.hbase.pb.IsNormalizerEnabledReq" +
+ "uest\032%.hbase.pb.IsNormalizerEnabledRespo" +
+ "nse\022S\n\016RunCatalogScan\022\037.hbase.pb.RunCata" +
+ "logScanRequest\032 .hbase.pb.RunCatalogScan" +
+ "Response\022e\n\024EnableCatalogJanitor\022%.hbase" +
+ ".pb.EnableCatalogJanitorRequest\032&.hbase.",
+ "pb.EnableCatalogJanitorResponse\022n\n\027IsCat" +
+ "alogJanitorEnabled\022(.hbase.pb.IsCatalogJ" +
+ "anitorEnabledRequest\032).hbase.pb.IsCatalo" +
+ "gJanitorEnabledResponse\022V\n\017RunCleanerCho" +
+ "re\022 .hbase.pb.RunCleanerChoreRequest\032!.h" +
+ "base.pb.RunCleanerChoreResponse\022k\n\026SetCl" +
+ "eanerChoreRunning\022\'.hbase.pb.SetCleanerC" +
+ "horeRunningRequest\032(.hbase.pb.SetCleaner" +
+ "ChoreRunningResponse\022h\n\025IsCleanerChoreEn" +
+ "abled\022&.hbase.pb.IsCleanerChoreEnabledRe",
+ "quest\032\'.hbase.pb.IsCleanerChoreEnabledRe" +
+ "sponse\022^\n\021ExecMasterService\022#.hbase.pb.C" +
+ "oprocessorServiceRequest\032$.hbase.pb.Copr" +
+ "ocessorServiceResponse\022A\n\010Snapshot\022\031.hba" +
+ "se.pb.SnapshotRequest\032\032.hbase.pb.Snapsho" +
+ "tResponse\022h\n\025GetCompletedSnapshots\022&.hba" +
+ "se.pb.GetCompletedSnapshotsRequest\032\'.hba" +
+ "se.pb.GetCompletedSnapshotsResponse\022S\n\016D" +
+ "eleteSnapshot\022\037.hbase.pb.DeleteSnapshotR" +
+ "equest\032 .hbase.pb.DeleteSnapshotResponse",
+ "\022S\n\016IsSnapshotDone\022\037.hbase.pb.IsSnapshot" +
+ "DoneRequest\032 .hbase.pb.IsSnapshotDoneRes" +
+ "ponse\022V\n\017RestoreSnapshot\022 .hbase.pb.Rest" +
+ "oreSnapshotRequest\032!.hbase.pb.RestoreSna" +
+ "pshotResponse\022P\n\rExecProcedure\022\036.hbase.p" +
+ "b.ExecProcedureRequest\032\037.hbase.pb.ExecPr" +
+ "ocedureResponse\022W\n\024ExecProcedureWithRet\022" +
+ "\036.hbase.pb.ExecProcedureRequest\032\037.hbase." +
+ "pb.ExecProcedureResponse\022V\n\017IsProcedureD" +
+ "one\022 .hbase.pb.IsProcedureDoneRequest\032!.",
+ "hbase.pb.IsProcedureDoneResponse\022V\n\017Modi" +
+ "fyNamespace\022 .hbase.pb.ModifyNamespaceRe" +
+ "quest\032!.hbase.pb.ModifyNamespaceResponse" +
+ "\022V\n\017CreateNamespace\022 .hbase.pb.CreateNam" +
+ "espaceRequest\032!.hbase.pb.CreateNamespace" +
+ "Response\022V\n\017DeleteNamespace\022 .hbase.pb.D" +
+ "eleteNamespaceRequest\032!.hbase.pb.DeleteN" +
+ "amespaceResponse\022k\n\026GetNamespaceDescript" +
+ "or\022\'.hbase.pb.GetNamespaceDescriptorRequ" +
+ "est\032(.hbase.pb.GetNamespaceDescriptorRes",
+ "ponse\022q\n\030ListNamespaceDescriptors\022).hbas" +
+ "e.pb.ListNamespaceDescriptorsRequest\032*.h" +
+ "base.pb.ListNamespaceDescriptorsResponse" +
+ "\022\206\001\n\037ListTableDescriptorsByNamespace\0220.h" +
+ "base.pb.ListTableDescriptorsByNamespaceR" +
+ "equest\0321.hbase.pb.ListTableDescriptorsBy" +
+ "NamespaceResponse\022t\n\031ListTableNamesByNam" +
+ "espace\022*.hbase.pb.ListTableNamesByNamesp" +
+ "aceRequest\032+.hbase.pb.ListTableNamesByNa" +
+ "mespaceResponse\022P\n\rGetTableState\022\036.hbase",
+ ".pb.GetTableStateRequest\032\037.hbase.pb.GetT" +
+ "ableStateResponse\022A\n\010SetQuota\022\031.hbase.pb" +
+ ".SetQuotaRequest\032\032.hbase.pb.SetQuotaResp" +
+ "onse\022x\n\037getLastMajorCompactionTimestamp\022" +
+ ").hbase.pb.MajorCompactionTimestampReque" +
+ "st\032*.hbase.pb.MajorCompactionTimestampRe" +
+ "sponse\022\212\001\n(getLastMajorCompactionTimesta" +
+ "mpForRegion\0222.hbase.pb.MajorCompactionTi" +
+ "mestampForRegionRequest\032*.hbase.pb.Major" +
+ "CompactionTimestampResponse\022_\n\022getProced",
+ "ureResult\022#.hbase.pb.GetProcedureResultR" +
+ "equest\032$.hbase.pb.GetProcedureResultResp" +
+ "onse\022h\n\027getSecurityCapabilities\022%.hbase." +
+ "pb.SecurityCapabilitiesRequest\032&.hbase.p" +
+ "b.SecurityCapabilitiesResponse\022S\n\016AbortP" +
+ "rocedure\022\037.hbase.pb.AbortProcedureReques" +
+ "t\032 .hbase.pb.AbortProcedureResponse\022S\n\016L" +
+ "istProcedures\022\037.hbase.pb.ListProceduresR" +
+ "equest\032 .hbase.pb.ListProceduresResponse" +
+ "\022_\n\022AddReplicationPeer\022#.hbase.pb.AddRep",
+ "licationPeerRequest\032$.hbase.pb.AddReplic" +
+ "ationPeerResponse\022h\n\025RemoveReplicationPe" +
+ "er\022&.hbase.pb.RemoveReplicationPeerReque" +
+ "st\032\'.hbase.pb.RemoveReplicationPeerRespo" +
+ "nse\022h\n\025EnableReplicationPeer\022&.hbase.pb." +
+ "EnableReplicationPeerRequest\032\'.hbase.pb." +
+ "EnableReplicationPeerResponse\022k\n\026Disable" +
+ "ReplicationPeer\022\'.hbase.pb.DisableReplic" +
+ "ationPeerRequest\032(.hbase.pb.DisableRepli" +
+ "cationPeerResponse\022q\n\030GetReplicationPeer",
+ "Config\022).hbase.pb.GetReplicationPeerConf" +
+ "igRequest\032*.hbase.pb.GetReplicationPeerC" +
+ "onfigResponse\022z\n\033UpdateReplicationPeerCo" +
+ "nfig\022,.hbase.pb.UpdateReplicationPeerCon" +
+ "figRequest\032-.hbase.pb.UpdateReplicationP" +
+ "eerConfigResponse\022e\n\024ListReplicationPeer" +
+ "s\022%.hbase.pb.ListReplicationPeersRequest" +
+ "\032&.hbase.pb.ListReplicationPeersResponse" +
+ "\022t\n\031listDrainingRegionServers\022*.hbase.pb" +
+ ".ListDrainingRegionServersRequest\032+.hbas",
+ "e.pb.ListDrainingRegionServersResponse\022_" +
+ "\n\022drainRegionServers\022#.hbase.pb.DrainReg" +
+ "ionServersRequest\032$.hbase.pb.DrainRegion" +
+ "ServersResponse\022}\n\034removeDrainFromRegion" +
+ "Servers\022-.hbase.pb.RemoveDrainFromRegion" +
+ "ServersRequest\032..hbase.pb.RemoveDrainFro" +
+ "mRegionServersResponseBI\n1org.apache.had" +
+ "oop.hbase.shaded.protobuf.generatedB\014Mas" +
+ "terProtosH\001\210\001\001\240\001\001"
};
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
@@ -77492,7 +77492,7 @@ public final class MasterProtos {
internal_static_hbase_pb_GetProcedureResultResponse_fieldAccessorTable = new
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_hbase_pb_GetProcedureResultResponse_descriptor,
- new java.lang.String[] { "State", "StartTime", "LastUpdate", "Result", "Exception", });
+ new java.lang.String[] { "State", "SubmittedTime", "LastUpdate", "Result", "Exception", });
internal_static_hbase_pb_AbortProcedureRequest_descriptor =
getDescriptor().getMessageTypes().get(106);
internal_static_hbase_pb_AbortProcedureRequest_fieldAccessorTable = new
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/ProcedureProtos.java
----------------------------------------------------------------------
diff --git a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/ProcedureProtos.java b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/ProcedureProtos.java
index 56d1e11..e6fe9b1 100644
--- a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/ProcedureProtos.java
+++ b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/ProcedureProtos.java
@@ -262,13 +262,13 @@ public final class ProcedureProtos {
long getProcId();
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- boolean hasStartTime();
+ boolean hasSubmittedTime();
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- long getStartTime();
+ long getSubmittedTime();
/**
* <code>optional string owner = 5;</code>
@@ -449,7 +449,7 @@ public final class ProcedureProtos {
className_ = "";
parentId_ = 0L;
procId_ = 0L;
- startTime_ = 0L;
+ submittedTime_ = 0L;
owner_ = "";
state_ = 1;
stackId_ = java.util.Collections.emptyList();
@@ -507,7 +507,7 @@ public final class ProcedureProtos {
}
case 32: {
bitField0_ |= 0x00000008;
- startTime_ = input.readUInt64();
+ submittedTime_ = input.readUInt64();
break;
}
case 42: {
@@ -711,19 +711,19 @@ public final class ProcedureProtos {
return procId_;
}
- public static final int START_TIME_FIELD_NUMBER = 4;
- private long startTime_;
+ public static final int SUBMITTED_TIME_FIELD_NUMBER = 4;
+ private long submittedTime_;
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- public boolean hasStartTime() {
+ public boolean hasSubmittedTime() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- public long getStartTime() {
- return startTime_;
+ public long getSubmittedTime() {
+ return submittedTime_;
}
public static final int OWNER_FIELD_NUMBER = 5;
@@ -987,7 +987,7 @@ public final class ProcedureProtos {
memoizedIsInitialized = 0;
return false;
}
- if (!hasStartTime()) {
+ if (!hasSubmittedTime()) {
memoizedIsInitialized = 0;
return false;
}
@@ -1015,7 +1015,7 @@ public final class ProcedureProtos {
output.writeUInt64(3, procId_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
- output.writeUInt64(4, startTime_);
+ output.writeUInt64(4, submittedTime_);
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.writeString(output, 5, owner_);
@@ -1068,7 +1068,7 @@ public final class ProcedureProtos {
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
- .computeUInt64Size(4, startTime_);
+ .computeUInt64Size(4, submittedTime_);
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
size += org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.computeStringSize(5, owner_);
@@ -1146,10 +1146,10 @@ public final class ProcedureProtos {
result = result && (getProcId()
== other.getProcId());
}
- result = result && (hasStartTime() == other.hasStartTime());
- if (hasStartTime()) {
- result = result && (getStartTime()
- == other.getStartTime());
+ result = result && (hasSubmittedTime() == other.hasSubmittedTime());
+ if (hasSubmittedTime()) {
+ result = result && (getSubmittedTime()
+ == other.getSubmittedTime());
}
result = result && (hasOwner() == other.hasOwner());
if (hasOwner()) {
@@ -1222,10 +1222,10 @@ public final class ProcedureProtos {
hash = (53 * hash) + org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.hashLong(
getProcId());
}
- if (hasStartTime()) {
- hash = (37 * hash) + START_TIME_FIELD_NUMBER;
+ if (hasSubmittedTime()) {
+ hash = (37 * hash) + SUBMITTED_TIME_FIELD_NUMBER;
hash = (53 * hash) + org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.hashLong(
- getStartTime());
+ getSubmittedTime());
}
if (hasOwner()) {
hash = (37 * hash) + OWNER_FIELD_NUMBER;
@@ -1400,7 +1400,7 @@ public final class ProcedureProtos {
bitField0_ = (bitField0_ & ~0x00000002);
procId_ = 0L;
bitField0_ = (bitField0_ & ~0x00000004);
- startTime_ = 0L;
+ submittedTime_ = 0L;
bitField0_ = (bitField0_ & ~0x00000008);
owner_ = "";
bitField0_ = (bitField0_ & ~0x00000010);
@@ -1465,7 +1465,7 @@ public final class ProcedureProtos {
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
- result.startTime_ = startTime_;
+ result.submittedTime_ = submittedTime_;
if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
to_bitField0_ |= 0x00000010;
}
@@ -1564,8 +1564,8 @@ public final class ProcedureProtos {
if (other.hasProcId()) {
setProcId(other.getProcId());
}
- if (other.hasStartTime()) {
- setStartTime(other.getStartTime());
+ if (other.hasSubmittedTime()) {
+ setSubmittedTime(other.getSubmittedTime());
}
if (other.hasOwner()) {
bitField0_ |= 0x00000010;
@@ -1618,7 +1618,7 @@ public final class ProcedureProtos {
if (!hasProcId()) {
return false;
}
- if (!hasStartTime()) {
+ if (!hasSubmittedTime()) {
return false;
}
if (!hasState()) {
@@ -1829,34 +1829,34 @@ public final class ProcedureProtos {
return this;
}
- private long startTime_ ;
+ private long submittedTime_ ;
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- public boolean hasStartTime() {
+ public boolean hasSubmittedTime() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- public long getStartTime() {
- return startTime_;
+ public long getSubmittedTime() {
+ return submittedTime_;
}
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- public Builder setStartTime(long value) {
+ public Builder setSubmittedTime(long value) {
bitField0_ |= 0x00000008;
- startTime_ = value;
+ submittedTime_ = value;
onChanged();
return this;
}
/**
- * <code>required uint64 start_time = 4;</code>
+ * <code>required uint64 submitted_time = 4;</code>
*/
- public Builder clearStartTime() {
+ public Builder clearSubmittedTime() {
bitField0_ = (bitField0_ & ~0x00000008);
- startTime_ = 0L;
+ submittedTime_ = 0L;
onChanged();
return this;
}
@@ -7743,38 +7743,38 @@ public final class ProcedureProtos {
static {
java.lang.String[] descriptorData = {
"\n\017Procedure.proto\022\010hbase.pb\032\023ErrorHandli" +
- "ng.proto\"\313\002\n\tProcedure\022\022\n\nclass_name\030\001 \002" +
- "(\t\022\021\n\tparent_id\030\002 \001(\004\022\017\n\007proc_id\030\003 \002(\004\022\022" +
- "\n\nstart_time\030\004 \002(\004\022\r\n\005owner\030\005 \001(\t\022\'\n\005sta" +
- "te\030\006 \002(\0162\030.hbase.pb.ProcedureState\022\020\n\010st" +
- "ack_id\030\007 \003(\r\022\023\n\013last_update\030\010 \002(\004\022\017\n\007tim" +
- "eout\030\t \001(\r\0224\n\texception\030\n \001(\0132!.hbase.pb" +
- ".ForeignExceptionMessage\022\016\n\006result\030\013 \001(\014" +
- "\022\022\n\nstate_data\030\014 \001(\014\022\026\n\013nonce_group\030\r \001(" +
- "\004:\0010\022\020\n\005nonce\030\016 \001(\004:\0010\"+\n\027SequentialProc",
- "edureData\022\020\n\010executed\030\001 \002(\010\"*\n\031StateMach" +
- "ineProcedureData\022\r\n\005state\030\001 \003(\r\"X\n\022Proce" +
- "dureWALHeader\022\017\n\007version\030\001 \002(\r\022\014\n\004type\030\002" +
- " \002(\r\022\016\n\006log_id\030\003 \002(\004\022\023\n\013min_proc_id\030\004 \002(" +
- "\004\";\n\023ProcedureWALTrailer\022\017\n\007version\030\001 \002(" +
- "\r\022\023\n\013tracker_pos\030\002 \002(\004\"\225\001\n\025ProcedureStor" +
- "eTracker\0229\n\004node\030\001 \003(\0132+.hbase.pb.Proced" +
- "ureStoreTracker.TrackerNode\032A\n\013TrackerNo" +
- "de\022\020\n\010start_id\030\001 \002(\004\022\017\n\007updated\030\002 \003(\004\022\017\n" +
- "\007deleted\030\003 \003(\004\"\257\002\n\021ProcedureWALEntry\022.\n\004",
- "type\030\001 \002(\0162 .hbase.pb.ProcedureWALEntry." +
- "Type\022&\n\tprocedure\030\002 \003(\0132\023.hbase.pb.Proce" +
- "dure\022\017\n\007proc_id\030\003 \001(\004\022\020\n\010child_id\030\004 \003(\004\"" +
- "\236\001\n\004Type\022\025\n\021PROCEDURE_WAL_EOF\020\001\022\026\n\022PROCE" +
- "DURE_WAL_INIT\020\002\022\030\n\024PROCEDURE_WAL_INSERT\020" +
- "\003\022\030\n\024PROCEDURE_WAL_UPDATE\020\004\022\030\n\024PROCEDURE" +
- "_WAL_DELETE\020\005\022\031\n\025PROCEDURE_WAL_COMPACT\020\006" +
- "*{\n\016ProcedureState\022\020\n\014INITIALIZING\020\001\022\014\n\010" +
- "RUNNABLE\020\002\022\013\n\007WAITING\020\003\022\023\n\017WAITING_TIMEO" +
- "UT\020\004\022\016\n\nROLLEDBACK\020\005\022\013\n\007SUCCESS\020\006\022\n\n\006FAI",
- "LED\020\007BL\n1org.apache.hadoop.hbase.shaded." +
- "protobuf.generatedB\017ProcedureProtosH\001\210\001\001" +
- "\240\001\001"
+ "ng.proto\"\317\002\n\tProcedure\022\022\n\nclass_name\030\001 \002" +
+ "(\t\022\021\n\tparent_id\030\002 \001(\004\022\017\n\007proc_id\030\003 \002(\004\022\026" +
+ "\n\016submitted_time\030\004 \002(\004\022\r\n\005owner\030\005 \001(\t\022\'\n" +
+ "\005state\030\006 \002(\0162\030.hbase.pb.ProcedureState\022\020" +
+ "\n\010stack_id\030\007 \003(\r\022\023\n\013last_update\030\010 \002(\004\022\017\n" +
+ "\007timeout\030\t \001(\r\0224\n\texception\030\n \001(\0132!.hbas" +
+ "e.pb.ForeignExceptionMessage\022\016\n\006result\030\013" +
+ " \001(\014\022\022\n\nstate_data\030\014 \001(\014\022\026\n\013nonce_group\030" +
+ "\r \001(\004:\0010\022\020\n\005nonce\030\016 \001(\004:\0010\"+\n\027Sequential",
+ "ProcedureData\022\020\n\010executed\030\001 \002(\010\"*\n\031State" +
+ "MachineProcedureData\022\r\n\005state\030\001 \003(\r\"X\n\022P" +
+ "rocedureWALHeader\022\017\n\007version\030\001 \002(\r\022\014\n\004ty" +
+ "pe\030\002 \002(\r\022\016\n\006log_id\030\003 \002(\004\022\023\n\013min_proc_id\030" +
+ "\004 \002(\004\";\n\023ProcedureWALTrailer\022\017\n\007version\030" +
+ "\001 \002(\r\022\023\n\013tracker_pos\030\002 \002(\004\"\225\001\n\025Procedure" +
+ "StoreTracker\0229\n\004node\030\001 \003(\0132+.hbase.pb.Pr" +
+ "ocedureStoreTracker.TrackerNode\032A\n\013Track" +
+ "erNode\022\020\n\010start_id\030\001 \002(\004\022\017\n\007updated\030\002 \003(" +
+ "\004\022\017\n\007deleted\030\003 \003(\004\"\257\002\n\021ProcedureWALEntry",
+ "\022.\n\004type\030\001 \002(\0162 .hbase.pb.ProcedureWALEn" +
+ "try.Type\022&\n\tprocedure\030\002 \003(\0132\023.hbase.pb.P" +
+ "rocedure\022\017\n\007proc_id\030\003 \001(\004\022\020\n\010child_id\030\004 " +
+ "\003(\004\"\236\001\n\004Type\022\025\n\021PROCEDURE_WAL_EOF\020\001\022\026\n\022P" +
+ "ROCEDURE_WAL_INIT\020\002\022\030\n\024PROCEDURE_WAL_INS" +
+ "ERT\020\003\022\030\n\024PROCEDURE_WAL_UPDATE\020\004\022\030\n\024PROCE" +
+ "DURE_WAL_DELETE\020\005\022\031\n\025PROCEDURE_WAL_COMPA" +
+ "CT\020\006*{\n\016ProcedureState\022\020\n\014INITIALIZING\020\001" +
+ "\022\014\n\010RUNNABLE\020\002\022\013\n\007WAITING\020\003\022\023\n\017WAITING_T" +
+ "IMEOUT\020\004\022\016\n\nROLLEDBACK\020\005\022\013\n\007SUCCESS\020\006\022\n\n",
+ "\006FAILED\020\007BL\n1org.apache.hadoop.hbase.sha" +
+ "ded.protobuf.generatedB\017ProcedureProtosH" +
+ "\001\210\001\001\240\001\001"
};
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
@@ -7794,7 +7794,7 @@ public final class ProcedureProtos {
internal_static_hbase_pb_Procedure_fieldAccessorTable = new
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_hbase_pb_Procedure_descriptor,
- new java.lang.String[] { "ClassName", "ParentId", "ProcId", "StartTime", "Owner", "State", "StackId", "LastUpdate", "Timeout", "Exception", "Result", "StateData", "NonceGroup", "Nonce", });
+ new java.lang.String[] { "ClassName", "ParentId", "ProcId", "SubmittedTime", "Owner", "State", "StackId", "LastUpdate", "Timeout", "Exception", "Result", "StateData", "NonceGroup", "Nonce", });
internal_static_hbase_pb_SequentialProcedureData_descriptor =
getDescriptor().getMessageTypes().get(1);
internal_static_hbase_pb_SequentialProcedureData_fieldAccessorTable = new
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-protocol-shaded/src/main/protobuf/Master.proto
----------------------------------------------------------------------
diff --git a/hbase-protocol-shaded/src/main/protobuf/Master.proto b/hbase-protocol-shaded/src/main/protobuf/Master.proto
index e22695b..d7d51e2 100644
--- a/hbase-protocol-shaded/src/main/protobuf/Master.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/Master.proto
@@ -512,7 +512,7 @@ message GetProcedureResultResponse {
}
required State state = 1;
- optional uint64 start_time = 2;
+ optional uint64 submitted_time = 2;
optional uint64 last_update = 3;
optional bytes result = 4;
optional ForeignExceptionMessage exception = 5;
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-protocol-shaded/src/main/protobuf/Procedure.proto
----------------------------------------------------------------------
diff --git a/hbase-protocol-shaded/src/main/protobuf/Procedure.proto b/hbase-protocol-shaded/src/main/protobuf/Procedure.proto
index 2fed24d..1a3ecf5 100644
--- a/hbase-protocol-shaded/src/main/protobuf/Procedure.proto
+++ b/hbase-protocol-shaded/src/main/protobuf/Procedure.proto
@@ -43,7 +43,7 @@ message Procedure {
required string class_name = 1; // full classname to be able to instantiate the procedure
optional uint64 parent_id = 2; // parent if not a root-procedure otherwise not set
required uint64 proc_id = 3;
- required uint64 start_time = 4;
+ required uint64 submitted_time = 4;
optional string owner = 5;
// internal "runtime" state
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/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 f86f800..9af8f45 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
@@ -1098,7 +1098,7 @@ public class MasterRpcServices extends RSRpcServices
if (v.getFirst() != null) {
ProcedureInfo result = v.getFirst();
builder.setState(GetProcedureResultResponse.State.FINISHED);
- builder.setStartTime(result.getStartTime());
+ builder.setSubmittedTime(result.getSubmittedTime());
builder.setLastUpdate(result.getLastUpdate());
if (result.isFailed()) {
builder.setException(ForeignExceptionUtil.toProtoForeignException(result.getException()));
@@ -1113,7 +1113,7 @@ public class MasterRpcServices extends RSRpcServices
builder.setState(GetProcedureResultResponse.State.NOT_FOUND);
} else {
builder.setState(GetProcedureResultResponse.State.RUNNING);
- builder.setStartTime(proc.getStartTime());
+ builder.setSubmittedTime(proc.getSubmittedTime());
builder.setLastUpdate(proc.getLastUpdate());
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
index 484decc..2703947 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
@@ -166,7 +166,7 @@ implements ServerProcedureInterface {
private void throwProcedureYieldException(final String msg) throws ProcedureYieldException {
String logMsg = msg + "; cycle=" + this.cycles + ", running for " +
- StringUtils.formatTimeDiff(System.currentTimeMillis(), getStartTime());
+ StringUtils.formatTimeDiff(System.currentTimeMillis(), getSubmittedTime());
// The procedure executor logs ProcedureYieldException at trace level. For now, log these
// yields for server crash processing at DEBUG. Revisit when stable.
if (LOG.isDebugEnabled()) LOG.debug(logMsg);
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp b/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
index 645f6fd..c841e61 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp
@@ -124,7 +124,7 @@
<td><%= escapeXml(procInfo.getProcState().toString()) %></a></td>
<td><%= escapeXml(procInfo.getProcOwner()) %></a></td>
<td><%= escapeXml(procInfo.getProcName()) %></a></td>
- <td><%= new Date(procInfo.getStartTime()) %></a></td>
+ <td><%= new Date(procInfo.getSubmittedTime()) %></a></td>
<td><%= new Date(procInfo.getLastUpdate()) %></a></td>
<td><%= escapeXml(procInfo.isFailed() ? procInfo.getException().getMessage() : "") %></a></td>
</tr>
http://git-wip-us.apache.org/repos/asf/hbase/blob/c8461456/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb b/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb
index 4358a96..64a3388 100644
--- a/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/list_procedures.rb
@@ -29,13 +29,13 @@ EOF
end
def command()
- formatter.header([ "Id", "Name", "State", "Start_Time", "Last_Update" ])
+ formatter.header([ "Id", "Name", "State", "Submitted_Time", "Last_Update" ])
list = admin.list_procedures()
list.each do |proc|
- start_time = Time.at(proc.getStartTime / 1000).to_s
+ submitted_time = Time.at(proc.getSubmittedTime / 1000).to_s
last_update = Time.at(proc.getLastUpdate / 1000).to_s
- formatter.row([ proc.getProcId, proc.getProcName, proc.getProcState, start_time, last_update ])
+ formatter.row([ proc.getProcId, proc.getProcName, proc.getProcState, submitted_time, last_update ])
end
formatter.footer(list.size)