diff --git llap-server/src/gen/protobuf/gen-java/org/apache/hadoop/hive/llap/daemon/rpc/LlapDaemonProtocolProtos.java llap-server/src/gen/protobuf/gen-java/org/apache/hadoop/hive/llap/daemon/rpc/LlapDaemonProtocolProtos.java
index 3ca2640..1500635 100644
--- llap-server/src/gen/protobuf/gen-java/org/apache/hadoop/hive/llap/daemon/rpc/LlapDaemonProtocolProtos.java
+++ llap-server/src/gen/protobuf/gen-java/org/apache/hadoop/hive/llap/daemon/rpc/LlapDaemonProtocolProtos.java
@@ -5535,6 +5535,800 @@ public Builder clearAttemptNumber() {
// @@protoc_insertion_point(class_scope:FragmentSpecProto)
}
+ public interface FragmentRuntimeInfoOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional int32 num_self_and_upstream_tasks = 1;
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ boolean hasNumSelfAndUpstreamTasks();
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ int getNumSelfAndUpstreamTasks();
+
+ // optional int32 num_self_and_upstream_completed_tasks = 2;
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ boolean hasNumSelfAndUpstreamCompletedTasks();
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ int getNumSelfAndUpstreamCompletedTasks();
+
+ // optional int32 within_dag_priority = 3;
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ boolean hasWithinDagPriority();
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ int getWithinDagPriority();
+
+ // optional int64 dag_start_time = 4;
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ boolean hasDagStartTime();
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ long getDagStartTime();
+
+ // optional int64 first_attempt_start_time = 5;
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ boolean hasFirstAttemptStartTime();
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ long getFirstAttemptStartTime();
+ }
+ /**
+ * Protobuf type {@code FragmentRuntimeInfo}
+ */
+ public static final class FragmentRuntimeInfo extends
+ com.google.protobuf.GeneratedMessage
+ implements FragmentRuntimeInfoOrBuilder {
+ // Use FragmentRuntimeInfo.newBuilder() to construct.
+ private FragmentRuntimeInfo(com.google.protobuf.GeneratedMessage.Builder> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private FragmentRuntimeInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final FragmentRuntimeInfo defaultInstance;
+ public static FragmentRuntimeInfo getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public FragmentRuntimeInfo getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private FragmentRuntimeInfo(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ bitField0_ |= 0x00000001;
+ numSelfAndUpstreamTasks_ = input.readInt32();
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ numSelfAndUpstreamCompletedTasks_ = input.readInt32();
+ break;
+ }
+ case 24: {
+ bitField0_ |= 0x00000004;
+ withinDagPriority_ = input.readInt32();
+ break;
+ }
+ case 32: {
+ bitField0_ |= 0x00000008;
+ dagStartTime_ = input.readInt64();
+ break;
+ }
+ case 40: {
+ bitField0_ |= 0x00000010;
+ firstAttemptStartTime_ = input.readInt64();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.internal_static_FragmentRuntimeInfo_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.internal_static_FragmentRuntimeInfo_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.class, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ public FragmentRuntimeInfo parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new FragmentRuntimeInfo(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // optional int32 num_self_and_upstream_tasks = 1;
+ public static final int NUM_SELF_AND_UPSTREAM_TASKS_FIELD_NUMBER = 1;
+ private int numSelfAndUpstreamTasks_;
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ public boolean hasNumSelfAndUpstreamTasks() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ public int getNumSelfAndUpstreamTasks() {
+ return numSelfAndUpstreamTasks_;
+ }
+
+ // optional int32 num_self_and_upstream_completed_tasks = 2;
+ public static final int NUM_SELF_AND_UPSTREAM_COMPLETED_TASKS_FIELD_NUMBER = 2;
+ private int numSelfAndUpstreamCompletedTasks_;
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ public boolean hasNumSelfAndUpstreamCompletedTasks() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ public int getNumSelfAndUpstreamCompletedTasks() {
+ return numSelfAndUpstreamCompletedTasks_;
+ }
+
+ // optional int32 within_dag_priority = 3;
+ public static final int WITHIN_DAG_PRIORITY_FIELD_NUMBER = 3;
+ private int withinDagPriority_;
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ public boolean hasWithinDagPriority() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ public int getWithinDagPriority() {
+ return withinDagPriority_;
+ }
+
+ // optional int64 dag_start_time = 4;
+ public static final int DAG_START_TIME_FIELD_NUMBER = 4;
+ private long dagStartTime_;
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ public boolean hasDagStartTime() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ public long getDagStartTime() {
+ return dagStartTime_;
+ }
+
+ // optional int64 first_attempt_start_time = 5;
+ public static final int FIRST_ATTEMPT_START_TIME_FIELD_NUMBER = 5;
+ private long firstAttemptStartTime_;
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ public boolean hasFirstAttemptStartTime() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ public long getFirstAttemptStartTime() {
+ return firstAttemptStartTime_;
+ }
+
+ private void initFields() {
+ numSelfAndUpstreamTasks_ = 0;
+ numSelfAndUpstreamCompletedTasks_ = 0;
+ withinDagPriority_ = 0;
+ dagStartTime_ = 0L;
+ firstAttemptStartTime_ = 0L;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeInt32(1, numSelfAndUpstreamTasks_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeInt32(2, numSelfAndUpstreamCompletedTasks_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeInt32(3, withinDagPriority_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeInt64(4, dagStartTime_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeInt64(5, firstAttemptStartTime_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, numSelfAndUpstreamTasks_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(2, numSelfAndUpstreamCompletedTasks_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(3, withinDagPriority_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(4, dagStartTime_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(5, firstAttemptStartTime_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo)) {
+ return super.equals(obj);
+ }
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo other = (org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo) obj;
+
+ boolean result = true;
+ result = result && (hasNumSelfAndUpstreamTasks() == other.hasNumSelfAndUpstreamTasks());
+ if (hasNumSelfAndUpstreamTasks()) {
+ result = result && (getNumSelfAndUpstreamTasks()
+ == other.getNumSelfAndUpstreamTasks());
+ }
+ result = result && (hasNumSelfAndUpstreamCompletedTasks() == other.hasNumSelfAndUpstreamCompletedTasks());
+ if (hasNumSelfAndUpstreamCompletedTasks()) {
+ result = result && (getNumSelfAndUpstreamCompletedTasks()
+ == other.getNumSelfAndUpstreamCompletedTasks());
+ }
+ result = result && (hasWithinDagPriority() == other.hasWithinDagPriority());
+ if (hasWithinDagPriority()) {
+ result = result && (getWithinDagPriority()
+ == other.getWithinDagPriority());
+ }
+ result = result && (hasDagStartTime() == other.hasDagStartTime());
+ if (hasDagStartTime()) {
+ result = result && (getDagStartTime()
+ == other.getDagStartTime());
+ }
+ result = result && (hasFirstAttemptStartTime() == other.hasFirstAttemptStartTime());
+ if (hasFirstAttemptStartTime()) {
+ result = result && (getFirstAttemptStartTime()
+ == other.getFirstAttemptStartTime());
+ }
+ result = result &&
+ getUnknownFields().equals(other.getUnknownFields());
+ return result;
+ }
+
+ private int memoizedHashCode = 0;
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptorForType().hashCode();
+ if (hasNumSelfAndUpstreamTasks()) {
+ hash = (37 * hash) + NUM_SELF_AND_UPSTREAM_TASKS_FIELD_NUMBER;
+ hash = (53 * hash) + getNumSelfAndUpstreamTasks();
+ }
+ if (hasNumSelfAndUpstreamCompletedTasks()) {
+ hash = (37 * hash) + NUM_SELF_AND_UPSTREAM_COMPLETED_TASKS_FIELD_NUMBER;
+ hash = (53 * hash) + getNumSelfAndUpstreamCompletedTasks();
+ }
+ if (hasWithinDagPriority()) {
+ hash = (37 * hash) + WITHIN_DAG_PRIORITY_FIELD_NUMBER;
+ hash = (53 * hash) + getWithinDagPriority();
+ }
+ if (hasDagStartTime()) {
+ hash = (37 * hash) + DAG_START_TIME_FIELD_NUMBER;
+ hash = (53 * hash) + hashLong(getDagStartTime());
+ }
+ if (hasFirstAttemptStartTime()) {
+ hash = (37 * hash) + FIRST_ATTEMPT_START_TIME_FIELD_NUMBER;
+ hash = (53 * hash) + hashLong(getFirstAttemptStartTime());
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code FragmentRuntimeInfo}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder
+ implements org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfoOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.internal_static_FragmentRuntimeInfo_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.internal_static_FragmentRuntimeInfo_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.class, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder.class);
+ }
+
+ // Construct using org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ numSelfAndUpstreamTasks_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ numSelfAndUpstreamCompletedTasks_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ withinDagPriority_ = 0;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ dagStartTime_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ firstAttemptStartTime_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.internal_static_FragmentRuntimeInfo_descriptor;
+ }
+
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo getDefaultInstanceForType() {
+ return org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.getDefaultInstance();
+ }
+
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo build() {
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo buildPartial() {
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo result = new org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.numSelfAndUpstreamTasks_ = numSelfAndUpstreamTasks_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.numSelfAndUpstreamCompletedTasks_ = numSelfAndUpstreamCompletedTasks_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.withinDagPriority_ = withinDagPriority_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.dagStartTime_ = dagStartTime_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ result.firstAttemptStartTime_ = firstAttemptStartTime_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo) {
+ return mergeFrom((org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo other) {
+ if (other == org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.getDefaultInstance()) return this;
+ if (other.hasNumSelfAndUpstreamTasks()) {
+ setNumSelfAndUpstreamTasks(other.getNumSelfAndUpstreamTasks());
+ }
+ if (other.hasNumSelfAndUpstreamCompletedTasks()) {
+ setNumSelfAndUpstreamCompletedTasks(other.getNumSelfAndUpstreamCompletedTasks());
+ }
+ if (other.hasWithinDagPriority()) {
+ setWithinDagPriority(other.getWithinDagPriority());
+ }
+ if (other.hasDagStartTime()) {
+ setDagStartTime(other.getDagStartTime());
+ }
+ if (other.hasFirstAttemptStartTime()) {
+ setFirstAttemptStartTime(other.getFirstAttemptStartTime());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // optional int32 num_self_and_upstream_tasks = 1;
+ private int numSelfAndUpstreamTasks_ ;
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ public boolean hasNumSelfAndUpstreamTasks() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ public int getNumSelfAndUpstreamTasks() {
+ return numSelfAndUpstreamTasks_;
+ }
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ public Builder setNumSelfAndUpstreamTasks(int value) {
+ bitField0_ |= 0x00000001;
+ numSelfAndUpstreamTasks_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional int32 num_self_and_upstream_tasks = 1;
+ */
+ public Builder clearNumSelfAndUpstreamTasks() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ numSelfAndUpstreamTasks_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional int32 num_self_and_upstream_completed_tasks = 2;
+ private int numSelfAndUpstreamCompletedTasks_ ;
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ public boolean hasNumSelfAndUpstreamCompletedTasks() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ public int getNumSelfAndUpstreamCompletedTasks() {
+ return numSelfAndUpstreamCompletedTasks_;
+ }
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ public Builder setNumSelfAndUpstreamCompletedTasks(int value) {
+ bitField0_ |= 0x00000002;
+ numSelfAndUpstreamCompletedTasks_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional int32 num_self_and_upstream_completed_tasks = 2;
+ */
+ public Builder clearNumSelfAndUpstreamCompletedTasks() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ numSelfAndUpstreamCompletedTasks_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional int32 within_dag_priority = 3;
+ private int withinDagPriority_ ;
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ public boolean hasWithinDagPriority() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ public int getWithinDagPriority() {
+ return withinDagPriority_;
+ }
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ public Builder setWithinDagPriority(int value) {
+ bitField0_ |= 0x00000004;
+ withinDagPriority_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional int32 within_dag_priority = 3;
+ */
+ public Builder clearWithinDagPriority() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ withinDagPriority_ = 0;
+ onChanged();
+ return this;
+ }
+
+ // optional int64 dag_start_time = 4;
+ private long dagStartTime_ ;
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ public boolean hasDagStartTime() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ public long getDagStartTime() {
+ return dagStartTime_;
+ }
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ public Builder setDagStartTime(long value) {
+ bitField0_ |= 0x00000008;
+ dagStartTime_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional int64 dag_start_time = 4;
+ */
+ public Builder clearDagStartTime() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ dagStartTime_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // optional int64 first_attempt_start_time = 5;
+ private long firstAttemptStartTime_ ;
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ public boolean hasFirstAttemptStartTime() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ public long getFirstAttemptStartTime() {
+ return firstAttemptStartTime_;
+ }
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ public Builder setFirstAttemptStartTime(long value) {
+ bitField0_ |= 0x00000010;
+ firstAttemptStartTime_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional int64 first_attempt_start_time = 5;
+ */
+ public Builder clearFirstAttemptStartTime() {
+ bitField0_ = (bitField0_ & ~0x00000010);
+ firstAttemptStartTime_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:FragmentRuntimeInfo)
+ }
+
+ static {
+ defaultInstance = new FragmentRuntimeInfo(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:FragmentRuntimeInfo)
+ }
+
public interface SubmitWorkRequestProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
@@ -5656,6 +6450,20 @@ public Builder clearAttemptNumber() {
* optional .FragmentSpecProto fragment_spec = 9;
*/
org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentSpecProtoOrBuilder getFragmentSpecOrBuilder();
+
+ // optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ boolean hasFragmentRuntimeInfo();
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo getFragmentRuntimeInfo();
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfoOrBuilder getFragmentRuntimeInfoOrBuilder();
}
/**
* Protobuf type {@code SubmitWorkRequestProto}
@@ -5761,6 +6569,19 @@ private SubmitWorkRequestProto(
bitField0_ |= 0x00000100;
break;
}
+ case 82: {
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder subBuilder = null;
+ if (((bitField0_ & 0x00000200) == 0x00000200)) {
+ subBuilder = fragmentRuntimeInfo_.toBuilder();
+ }
+ fragmentRuntimeInfo_ = input.readMessage(org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.PARSER, extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(fragmentRuntimeInfo_);
+ fragmentRuntimeInfo_ = subBuilder.buildPartial();
+ }
+ bitField0_ |= 0x00000200;
+ break;
+ }
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
@@ -6086,6 +6907,28 @@ public boolean hasFragmentSpec() {
return fragmentSpec_;
}
+ // optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ public static final int FRAGMENT_RUNTIME_INFO_FIELD_NUMBER = 10;
+ private org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo fragmentRuntimeInfo_;
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public boolean hasFragmentRuntimeInfo() {
+ return ((bitField0_ & 0x00000200) == 0x00000200);
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo getFragmentRuntimeInfo() {
+ return fragmentRuntimeInfo_;
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfoOrBuilder getFragmentRuntimeInfoOrBuilder() {
+ return fragmentRuntimeInfo_;
+ }
+
private void initFields() {
containerIdString_ = "";
amHost_ = "";
@@ -6096,6 +6939,7 @@ private void initFields() {
applicationIdString_ = "";
appAttemptNumber_ = 0;
fragmentSpec_ = org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentSpecProto.getDefaultInstance();
+ fragmentRuntimeInfo_ = org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@@ -6136,6 +6980,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
if (((bitField0_ & 0x00000100) == 0x00000100)) {
output.writeMessage(9, fragmentSpec_);
}
+ if (((bitField0_ & 0x00000200) == 0x00000200)) {
+ output.writeMessage(10, fragmentRuntimeInfo_);
+ }
getUnknownFields().writeTo(output);
}
@@ -6181,6 +7028,10 @@ public int getSerializedSize() {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(9, fragmentSpec_);
}
+ if (((bitField0_ & 0x00000200) == 0x00000200)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(10, fragmentRuntimeInfo_);
+ }
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
@@ -6249,6 +7100,11 @@ public boolean equals(final java.lang.Object obj) {
result = result && getFragmentSpec()
.equals(other.getFragmentSpec());
}
+ result = result && (hasFragmentRuntimeInfo() == other.hasFragmentRuntimeInfo());
+ if (hasFragmentRuntimeInfo()) {
+ result = result && getFragmentRuntimeInfo()
+ .equals(other.getFragmentRuntimeInfo());
+ }
result = result &&
getUnknownFields().equals(other.getUnknownFields());
return result;
@@ -6298,6 +7154,10 @@ public int hashCode() {
hash = (37 * hash) + FRAGMENT_SPEC_FIELD_NUMBER;
hash = (53 * hash) + getFragmentSpec().hashCode();
}
+ if (hasFragmentRuntimeInfo()) {
+ hash = (37 * hash) + FRAGMENT_RUNTIME_INFO_FIELD_NUMBER;
+ hash = (53 * hash) + getFragmentRuntimeInfo().hashCode();
+ }
hash = (29 * hash) + getUnknownFields().hashCode();
memoizedHashCode = hash;
return hash;
@@ -6400,6 +7260,7 @@ private Builder(
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getFragmentSpecFieldBuilder();
+ getFragmentRuntimeInfoFieldBuilder();
}
}
private static Builder create() {
@@ -6430,6 +7291,12 @@ public Builder clear() {
fragmentSpecBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000100);
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ fragmentRuntimeInfo_ = org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.getDefaultInstance();
+ } else {
+ fragmentRuntimeInfoBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000200);
return this;
}
@@ -6498,6 +7365,14 @@ public Builder clone() {
} else {
result.fragmentSpec_ = fragmentSpecBuilder_.build();
}
+ if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
+ to_bitField0_ |= 0x00000200;
+ }
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ result.fragmentRuntimeInfo_ = fragmentRuntimeInfo_;
+ } else {
+ result.fragmentRuntimeInfo_ = fragmentRuntimeInfoBuilder_.build();
+ }
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@@ -6551,6 +7426,9 @@ public Builder mergeFrom(org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtoc
if (other.hasFragmentSpec()) {
mergeFragmentSpec(other.getFragmentSpec());
}
+ if (other.hasFragmentRuntimeInfo()) {
+ mergeFragmentRuntimeInfo(other.getFragmentRuntimeInfo());
+ }
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
@@ -7167,6 +8045,123 @@ public Builder clearFragmentSpec() {
return fragmentSpecBuilder_;
}
+ // optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ private org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo fragmentRuntimeInfo_ = org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfoOrBuilder> fragmentRuntimeInfoBuilder_;
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public boolean hasFragmentRuntimeInfo() {
+ return ((bitField0_ & 0x00000200) == 0x00000200);
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo getFragmentRuntimeInfo() {
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ return fragmentRuntimeInfo_;
+ } else {
+ return fragmentRuntimeInfoBuilder_.getMessage();
+ }
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public Builder setFragmentRuntimeInfo(org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo value) {
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ fragmentRuntimeInfo_ = value;
+ onChanged();
+ } else {
+ fragmentRuntimeInfoBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000200;
+ return this;
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public Builder setFragmentRuntimeInfo(
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder builderForValue) {
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ fragmentRuntimeInfo_ = builderForValue.build();
+ onChanged();
+ } else {
+ fragmentRuntimeInfoBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000200;
+ return this;
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public Builder mergeFragmentRuntimeInfo(org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo value) {
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ if (((bitField0_ & 0x00000200) == 0x00000200) &&
+ fragmentRuntimeInfo_ != org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.getDefaultInstance()) {
+ fragmentRuntimeInfo_ =
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.newBuilder(fragmentRuntimeInfo_).mergeFrom(value).buildPartial();
+ } else {
+ fragmentRuntimeInfo_ = value;
+ }
+ onChanged();
+ } else {
+ fragmentRuntimeInfoBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000200;
+ return this;
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public Builder clearFragmentRuntimeInfo() {
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ fragmentRuntimeInfo_ = org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.getDefaultInstance();
+ onChanged();
+ } else {
+ fragmentRuntimeInfoBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000200);
+ return this;
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder getFragmentRuntimeInfoBuilder() {
+ bitField0_ |= 0x00000200;
+ onChanged();
+ return getFragmentRuntimeInfoFieldBuilder().getBuilder();
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ public org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfoOrBuilder getFragmentRuntimeInfoOrBuilder() {
+ if (fragmentRuntimeInfoBuilder_ != null) {
+ return fragmentRuntimeInfoBuilder_.getMessageOrBuilder();
+ } else {
+ return fragmentRuntimeInfo_;
+ }
+ }
+ /**
+ * optional .FragmentRuntimeInfo fragment_runtime_info = 10;
+ */
+ private com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfoOrBuilder>
+ getFragmentRuntimeInfoFieldBuilder() {
+ if (fragmentRuntimeInfoBuilder_ == null) {
+ fragmentRuntimeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo.Builder, org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfoOrBuilder>(
+ fragmentRuntimeInfo_,
+ getParentForChildren(),
+ isClean());
+ fragmentRuntimeInfo_ = null;
+ }
+ return fragmentRuntimeInfoBuilder_;
+ }
+
// @@protoc_insertion_point(builder_scope:SubmitWorkRequestProto)
}
@@ -8956,6 +9951,11 @@ private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_FragmentSpecProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_FragmentRuntimeInfo_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_FragmentRuntimeInfo_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
internal_static_SubmitWorkRequestProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
@@ -9003,25 +10003,32 @@ private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
"\003(\0132\014.IOSpecProto\0221\n\023grouped_input_specs" +
"\030\007 \003(\0132\024.GroupInputSpecProto\022\032\n\022vertex_p" +
"arallelism\030\010 \001(\005\022\027\n\017fragment_number\030\t \001(" +
- "\005\022\026\n\016attempt_number\030\n \001(\005\"\201\002\n\026SubmitWork",
- "RequestProto\022\033\n\023container_id_string\030\001 \001(" +
- "\t\022\017\n\007am_host\030\002 \001(\t\022\017\n\007am_port\030\003 \001(\005\022\030\n\020t" +
- "oken_identifier\030\004 \001(\t\022\032\n\022credentials_bin" +
- "ary\030\005 \001(\014\022\014\n\004user\030\006 \001(\t\022\035\n\025application_i" +
- "d_string\030\007 \001(\t\022\032\n\022app_attempt_number\030\010 \001" +
- "(\005\022)\n\rfragment_spec\030\t \001(\0132\022.FragmentSpec" +
- "Proto\"\031\n\027SubmitWorkResponseProto\"f\n\036Sour" +
- "ceStateUpdatedRequestProto\022\020\n\010dag_name\030\001" +
- " \001(\t\022\020\n\010src_name\030\002 \001(\t\022 \n\005state\030\003 \001(\0162\021." +
- "SourceStateProto\"!\n\037SourceStateUpdatedRe",
- "sponseProto*2\n\020SourceStateProto\022\017\n\013S_SUC" +
- "CEEDED\020\001\022\r\n\tS_RUNNING\020\0022\256\001\n\022LlapDaemonPr" +
- "otocol\022?\n\nsubmitWork\022\027.SubmitWorkRequest" +
- "Proto\032\030.SubmitWorkResponseProto\022W\n\022sourc" +
- "eStateUpdated\022\037.SourceStateUpdatedReques" +
- "tProto\032 .SourceStateUpdatedResponseProto" +
- "BH\n&org.apache.hadoop.hive.llap.daemon.r" +
- "pcB\030LlapDaemonProtocolProtos\210\001\001\240\001\001"
+ "\005\022\026\n\016attempt_number\030\n \001(\005\"\300\001\n\023FragmentRu",
+ "ntimeInfo\022#\n\033num_self_and_upstream_tasks" +
+ "\030\001 \001(\005\022-\n%num_self_and_upstream_complete" +
+ "d_tasks\030\002 \001(\005\022\033\n\023within_dag_priority\030\003 \001" +
+ "(\005\022\026\n\016dag_start_time\030\004 \001(\003\022 \n\030first_atte" +
+ "mpt_start_time\030\005 \001(\003\"\266\002\n\026SubmitWorkReque" +
+ "stProto\022\033\n\023container_id_string\030\001 \001(\t\022\017\n\007" +
+ "am_host\030\002 \001(\t\022\017\n\007am_port\030\003 \001(\005\022\030\n\020token_" +
+ "identifier\030\004 \001(\t\022\032\n\022credentials_binary\030\005" +
+ " \001(\014\022\014\n\004user\030\006 \001(\t\022\035\n\025application_id_str" +
+ "ing\030\007 \001(\t\022\032\n\022app_attempt_number\030\010 \001(\005\022)\n",
+ "\rfragment_spec\030\t \001(\0132\022.FragmentSpecProto" +
+ "\0223\n\025fragment_runtime_info\030\n \001(\0132\024.Fragme" +
+ "ntRuntimeInfo\"\031\n\027SubmitWorkResponseProto" +
+ "\"f\n\036SourceStateUpdatedRequestProto\022\020\n\010da" +
+ "g_name\030\001 \001(\t\022\020\n\010src_name\030\002 \001(\t\022 \n\005state\030" +
+ "\003 \001(\0162\021.SourceStateProto\"!\n\037SourceStateU" +
+ "pdatedResponseProto*2\n\020SourceStateProto\022" +
+ "\017\n\013S_SUCCEEDED\020\001\022\r\n\tS_RUNNING\020\0022\256\001\n\022Llap" +
+ "DaemonProtocol\022?\n\nsubmitWork\022\027.SubmitWor" +
+ "kRequestProto\032\030.SubmitWorkResponseProto\022",
+ "W\n\022sourceStateUpdated\022\037.SourceStateUpdat" +
+ "edRequestProto\032 .SourceStateUpdatedRespo" +
+ "nseProtoBH\n&org.apache.hadoop.hive.llap." +
+ "daemon.rpcB\030LlapDaemonProtocolProtos\210\001\001\240" +
+ "\001\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -9058,26 +10065,32 @@ private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_FragmentSpecProto_descriptor,
new java.lang.String[] { "TaskAttemptIdString", "DagName", "VertexName", "ProcessorDescriptor", "InputSpecs", "OutputSpecs", "GroupedInputSpecs", "VertexParallelism", "FragmentNumber", "AttemptNumber", });
- internal_static_SubmitWorkRequestProto_descriptor =
+ internal_static_FragmentRuntimeInfo_descriptor =
getDescriptor().getMessageTypes().get(5);
+ internal_static_FragmentRuntimeInfo_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_FragmentRuntimeInfo_descriptor,
+ new java.lang.String[] { "NumSelfAndUpstreamTasks", "NumSelfAndUpstreamCompletedTasks", "WithinDagPriority", "DagStartTime", "FirstAttemptStartTime", });
+ internal_static_SubmitWorkRequestProto_descriptor =
+ getDescriptor().getMessageTypes().get(6);
internal_static_SubmitWorkRequestProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_SubmitWorkRequestProto_descriptor,
- new java.lang.String[] { "ContainerIdString", "AmHost", "AmPort", "TokenIdentifier", "CredentialsBinary", "User", "ApplicationIdString", "AppAttemptNumber", "FragmentSpec", });
+ new java.lang.String[] { "ContainerIdString", "AmHost", "AmPort", "TokenIdentifier", "CredentialsBinary", "User", "ApplicationIdString", "AppAttemptNumber", "FragmentSpec", "FragmentRuntimeInfo", });
internal_static_SubmitWorkResponseProto_descriptor =
- getDescriptor().getMessageTypes().get(6);
+ getDescriptor().getMessageTypes().get(7);
internal_static_SubmitWorkResponseProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_SubmitWorkResponseProto_descriptor,
new java.lang.String[] { });
internal_static_SourceStateUpdatedRequestProto_descriptor =
- getDescriptor().getMessageTypes().get(7);
+ getDescriptor().getMessageTypes().get(8);
internal_static_SourceStateUpdatedRequestProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_SourceStateUpdatedRequestProto_descriptor,
new java.lang.String[] { "DagName", "SrcName", "State", });
internal_static_SourceStateUpdatedResponseProto_descriptor =
- getDescriptor().getMessageTypes().get(8);
+ getDescriptor().getMessageTypes().get(9);
internal_static_SourceStateUpdatedResponseProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_SourceStateUpdatedResponseProto_descriptor,
diff --git llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/ContainerRunnerImpl.java llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/ContainerRunnerImpl.java
index 3a750b3..061e875 100644
--- llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/ContainerRunnerImpl.java
+++ llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/ContainerRunnerImpl.java
@@ -31,6 +31,8 @@
import org.apache.hadoop.hive.llap.LlapNodeId;
import org.apache.hadoop.hive.llap.daemon.ContainerRunner;
import org.apache.hadoop.hive.llap.daemon.HistoryLogger;
+import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos;
+import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo;
import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentSpecProto;
import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.GroupInputSpecProto;
import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.IOSpecProto;
@@ -268,6 +270,14 @@ public static String stringifySubmitRequest(SubmitWorkRequestProto request) {
}
}
sb.append("}");
+
+ FragmentRuntimeInfo fragmentRuntimeInfo = request.getFragmentRuntimeInfo();
+ sb.append(", FragmentRuntimeInfo={");
+ sb.append("taskCount=").append(fragmentRuntimeInfo.getNumSelfAndUpstreamTasks());
+ sb.append(", completedTaskCount=").append(fragmentRuntimeInfo.getNumSelfAndUpstreamCompletedTasks());
+ sb.append(", dagStartTime=").append(fragmentRuntimeInfo.getDagStartTime());
+ sb.append(", firstAttemptStartTime=").append(fragmentRuntimeInfo.getFirstAttemptStartTime());
+ sb.append("}");
return sb.toString();
}
diff --git llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
index 303bf6d..51e8cc6 100644
--- llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
+++ llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
@@ -31,6 +31,7 @@
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.llap.LlapNodeId;
import org.apache.hadoop.hive.llap.configuration.LlapConfiguration;
+import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo;
import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.SourceStateUpdatedRequestProto;
import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.SourceStateUpdatedResponseProto;
import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.SubmitWorkRequestProto;
@@ -176,12 +177,7 @@ public void registerRunningTaskAttempt(final ContainerId containerId, final Task
resetCurrentDag(taskSpec.getDAGName());
}
- SubmitWorkRequestProto requestProto;
- try {
- requestProto = constructSubmitWorkRequest(containerId, taskSpec);
- } catch (IOException e) {
- throw new RuntimeException("Failed to construct request", e);
- }
+
ContainerInfo containerInfo = getContainerInfo(containerId);
String host;
int port;
@@ -198,7 +194,16 @@ public void registerRunningTaskAttempt(final ContainerId containerId, final Task
entityTracker.registerTaskAttempt(containerId, taskSpec.getTaskAttemptID(), host, port);
- sourceStateTracker.addTask(host, port, taskSpec.getInputs());
+ sourceStateTracker.registerTaskForStateUpdates(host, port, taskSpec.getInputs());
+ FragmentRuntimeInfo fragmentRuntimeInfo = sourceStateTracker.getFragmentRuntimeInfo(taskSpec.getDAGName(),
+ taskSpec.getVertexName(), taskSpec.getTaskAttemptID().getTaskID().getId(), priority);
+ SubmitWorkRequestProto requestProto;
+
+ try {
+ requestProto = constructSubmitWorkRequest(containerId, taskSpec, fragmentRuntimeInfo);
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to construct request", e);
+ }
// Have to register this up front right now. Otherwise, it's possible for the task to start
// sending out status/DONE/KILLED/FAILED messages before TAImpl knows how to handle them.
@@ -296,7 +301,8 @@ private void resetCurrentDag(String newDagName) {
}
private SubmitWorkRequestProto constructSubmitWorkRequest(ContainerId containerId,
- TaskSpec taskSpec) throws
+ TaskSpec taskSpec,
+ FragmentRuntimeInfo fragmentRuntimeInfo) throws
IOException {
SubmitWorkRequestProto.Builder builder =
SubmitWorkRequestProto.newBuilder(BASE_SUBMIT_WORK_REQUEST);
@@ -316,6 +322,7 @@ private SubmitWorkRequestProto constructSubmitWorkRequest(ContainerId containerI
}
builder.setCredentialsBinary(ByteString.copyFrom(credentialsBinary));
builder.setFragmentSpec(Converters.convertTaskSpecToProto(taskSpec));
+ builder.setFragmentRuntimeInfo(fragmentRuntimeInfo);
return builder.build();
}
diff --git llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/helpers/SourceStateTracker.java llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/helpers/SourceStateTracker.java
index 698de76..d83d62b 100644
--- llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/helpers/SourceStateTracker.java
+++ llap-server/src/java/org/apache/hadoop/hive/llap/tezplugins/helpers/SourceStateTracker.java
@@ -23,9 +23,11 @@
import java.util.Map;
import java.util.Set;
+import org.apache.commons.lang3.mutable.MutableInt;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.llap.LlapNodeId;
+import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.FragmentRuntimeInfo;
import org.apache.hadoop.hive.llap.daemon.rpc.LlapDaemonProtocolProtos.SourceStateUpdatedRequestProto;
import org.apache.hadoop.hive.llap.tezplugins.Converters;
import org.apache.hadoop.hive.llap.tezplugins.LlapTaskCommunicator;
@@ -49,7 +51,6 @@
private volatile String currentDagName;
-
public SourceStateTracker(TaskCommunicatorContext taskCommunicatorContext,
LlapTaskCommunicator taskCommunicator) {
this.taskCommunicatorContext = taskCommunicatorContext;
@@ -66,7 +67,14 @@ public synchronized void resetState(String newDagName) {
this.currentDagName = newDagName;
}
- public synchronized void addTask(String host, int port, List inputSpecList) {
+ /**
+ * Used to register a task for state updates. Effectively registers for state updates to go to the specific node.
+ * @param host
+ * @param port
+ * @param inputSpecList
+ */
+ public synchronized void registerTaskForStateUpdates(String host, int port,
+ List inputSpecList) {
// Add tracking information. Check if source state already known and send out an update if it is.
@@ -102,8 +110,18 @@ public synchronized void addTask(String host, int port, List inputSpe
}
}
+ /**
+ * Handled notifications on state updates for sources
+ * @param sourceName
+ * @param sourceState
+ */
public synchronized void sourceStateUpdated(String sourceName, VertexState sourceState) {
SourceInfo sourceInfo = getSourceInfo(sourceName);
+ // Update source info if the state is SUCCEEDED
+ if (sourceState == VertexState.SUCCEEDED) {
+ sourceInfo.numCompletedTasks = taskCommunicatorContext.getVertexCompletedTaskCount(sourceName);
+ sourceInfo.numTasks = taskCommunicatorContext.getVertexTotalTaskCount(sourceName);
+ }
sourceInfo.lastKnownState = sourceState;
// Checking state per node for future failure handling scenarios, where an update
// to a single node may fail.
@@ -119,11 +137,65 @@ public synchronized void sourceStateUpdated(String sourceName, VertexState sourc
}
+ /**
+ * Constructs FragmentRuntimeInfo for scheduling within LLAP daemons.
+ * Also caches state based on state updates.
+ * @param dagName
+ * @param vertexName
+ * @param fragmentNumber
+ * @param priority
+ * @return
+ */
+ public synchronized FragmentRuntimeInfo getFragmentRuntimeInfo(String dagName, String vertexName, int fragmentNumber,
+ int priority) {
+ FragmentRuntimeInfo.Builder builder = FragmentRuntimeInfo.newBuilder();
+ maybeRegisterForVertexUpdates(vertexName);
+
+ MutableInt totalTaskCount = new MutableInt(0);
+ MutableInt completedTaskCount = new MutableInt(0);
+ computeUpstreamTaskCounts(completedTaskCount, totalTaskCount, vertexName);
+
+ builder.setNumSelfAndUpstreamCompletedTasks(completedTaskCount.intValue());
+ builder.setNumSelfAndUpstreamTasks(totalTaskCount.intValue());
+ builder.setDagStartTime(taskCommunicatorContext.getDagStartTime());
+ builder.setWithinDagPriority(priority);
+ builder.setFirstAttemptStartTime(taskCommunicatorContext.getFirstAttemptStartTime(vertexName, fragmentNumber));
+ return builder.build();
+ }
+
+ private void computeUpstreamTaskCounts(MutableInt completedTaskCount, MutableInt totalTaskCount, String sourceName) {
+ SourceInfo sourceInfo = getSourceInfo(sourceName);
+ if (sourceInfo.lastKnownState == VertexState.SUCCEEDED) {
+ // Some of the information in the source is complete. Don't need to fetch it from the context.
+ completedTaskCount.add(sourceInfo.numCompletedTasks);
+ totalTaskCount.add(sourceInfo.numTasks);
+ } else {
+ completedTaskCount.add(taskCommunicatorContext.getVertexCompletedTaskCount(sourceName));
+ int totalCount =taskCommunicatorContext.getVertexTotalTaskCount(sourceName);
+ // Uninitialized vertices will report count as 0.
+ totalCount = totalCount == -1 ? 0 : totalCount;
+ totalTaskCount.add(totalCount);
+ }
+
+ // Walk through all the source vertices
+ for (String up : taskCommunicatorContext.getInputVertexNames(sourceName)) {
+ computeUpstreamTaskCounts(completedTaskCount, totalTaskCount, up);
+ }
+ }
+
private static class SourceInfo {
- private final List interestedNodes = new LinkedList<>();
+
// Always start in the running state. Requests for state updates will be sent out after registration.
private VertexState lastKnownState = VertexState.RUNNING;
+ // Used for sending notifications about a vertex completed. For canFinish
+ // Can be converted to a Tez event, if this is sufficient to decide on pre-emption
+ private final List interestedNodes = new LinkedList<>();
+
+ // Used for sending information for scheduling priority.
+ private int numTasks;
+ private int numCompletedTasks;
+
void addNode(LlapNodeId nodeId) {
interestedNodes.add(nodeId);
}
@@ -131,6 +203,9 @@ void addNode(LlapNodeId nodeId) {
List getInterestedNodes() {
return this.interestedNodes;
}
+
+
+
}
private synchronized SourceInfo getSourceInfo(String srcName) {
diff --git llap-server/src/protobuf/LlapDaemonProtocol.proto llap-server/src/protobuf/LlapDaemonProtocol.proto
index 654a155..f7e6d2b 100644
--- llap-server/src/protobuf/LlapDaemonProtocol.proto
+++ llap-server/src/protobuf/LlapDaemonProtocol.proto
@@ -60,6 +60,14 @@ message FragmentSpecProto {
optional int32 attempt_number = 10;
}
+message FragmentRuntimeInfo {
+ optional int32 num_self_and_upstream_tasks = 1;
+ optional int32 num_self_and_upstream_completed_tasks = 2;
+ optional int32 within_dag_priority = 3;
+ optional int64 dag_start_time = 4;
+ optional int64 first_attempt_start_time = 5;
+}
+
enum SourceStateProto {
S_SUCCEEDED = 1;
S_RUNNING = 2;
@@ -75,6 +83,7 @@ message SubmitWorkRequestProto {
optional string application_id_string = 7;
optional int32 app_attempt_number = 8;
optional FragmentSpecProto fragment_spec = 9;
+ optional FragmentRuntimeInfo fragment_runtime_info = 10;
}
message SubmitWorkResponseProto {