blob: 8938934cdec00e4f61fc6e8b604ade48338b6b1b [file] [log] [blame]
// 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.
syntax="proto2";
package impala;
import "common.proto";
// Structure to describe an executor group. We use this to configure the executor group
// for backends during startup and during cluster membership management.
message ExecutorGroupDescPB {
// The name of the executor group.
optional string name = 1;
// The minimum size of the executor group to be considered healthy.
optional int64 min_size = 2;
}
// Structure serialised in the Impala backend topic. Each Impalad
// constructs one BackendDescriptorPB, and registers it in the cluster-membership
// topic. Impalads subscribe to this topic to learn of the location of
// all other Impalads in the cluster. Impalads can act as coordinators, executors or
// both.
message BackendDescriptorPB {
// Unique identifier for this impalad. Generated on startup.
optional UniqueIdPB backend_id = 1;
// Hostname + port of the KRPC backend service on this backend.
optional NetworkAddressPB address = 2;
// IP address corresponding to address.hostname. Explicitly including this saves the
// cost of resolution at every Impalad (since IP addresses are needed for scheduling)
optional string ip_address = 3;
// True if this is a coordinator node
optional bool is_coordinator = 4;
// True if this is an executor node
optional bool is_executor = 5;
// The address of the debug HTTP server
optional NetworkAddressPB debug_http_address = 6;
// True if the debug webserver is secured (for correctly generating links)
optional bool secure_webserver = 7;
// IP address + port of the KRPC backend service on this backend.
optional NetworkAddressPB krpc_address = 8;
// The amount of memory that can be admitted to this backend (in bytes).
optional int64 admit_mem_limit = 9;
// True if fragment instances should not be scheduled on this daemon because the
// daemon has been quiescing, e.g. if it shutting down.
optional bool is_quiescing = 10;
// The list of executor groups that this backend belongs to. Only valid if is_executor
// is set, and currently must contain exactly one entry.
repeated ExecutorGroupDescPB executor_groups = 11;
// The number of admission slots for this backend that can be occupied by running
// queries.
optional int64 admission_slots = 12;
}