HBASE-17888: Added generic methods for updating metrics on submit and finish of a procedure execution

Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
Umesh Agashe 2017-04-10 15:32:43 -07:00 committed by Michael Stack
parent e2a746152c
commit c8461456d0
17 changed files with 652 additions and 359 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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();
}
/**

View File

@ -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);

View File

@ -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());
}
}

View File

@ -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++;
}
}
}
}

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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());
}
}

View File

@ -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);

View File

@ -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>

View File

@ -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)