blob: b9a964c1ff086af711d02aad0c2e29951bb21222 [file] [log] [blame]
// Copyright 2015-2016 Pivotal Software, Inc.
//
// Licensed 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 quickstep.serialization;
import "catalog/Catalog.proto";
import "query_execution/QueryContext.proto";
import "relational_operators/WorkOrder.proto";
// Used for any messages that do not carry payloads.
message EmptyMessage {
}
message ShiftbossRegistrationMessage {
// The total Work Order processing capacity in Shiftboss, which equals to the
// sum of the capacity of each worker managed by Shiftboss.
required uint64 work_order_capacity = 1;
}
message ShiftbossRegistrationResponseMessage {
}
message SqlQueryMessage {
required string sql_query = 1;
}
message ShiftbossInitiateMessage {
required uint64 query_id = 1;
required CatalogDatabase catalog_database_cache = 2;
required QueryContext query_context = 3;
}
message ShiftbossInitiateResponseMessage {
required uint64 query_id = 1;
}
message WorkOrderMessage {
required uint64 operator_index = 1;
required WorkOrder work_order = 2;
}
// Used for both Normal WorkOrders and RebuildWorkOrders.
// NOTE(zuyu): we might need to seperate the completion messages to contain
// run-time information for Foreman to make better decisions on scheduling
// WorkOrders.
message WorkOrderCompletionMessage {
required uint64 operator_index = 1;
required uint64 worker_id = 2;
}
message InitiateRebuildMessage {
required uint64 operator_index = 1;
required uint64 insert_destination_index = 2;
required int32 relation_id = 3;
}
message InitiateRebuildResponseMessage {
required uint64 operator_index = 1;
required uint64 num_rebuild_work_orders = 2;
}
message CatalogRelationNewBlockMessage {
required int32 relation_id = 1;
required fixed64 block_id = 2;
// Used by PartitionAwareInsertDestination.
optional uint64 partition_id = 3;
}
message DataPipelineMessage {
required uint64 operator_index = 1;
required fixed64 block_id = 2;
required int32 relation_id = 3;
}
message WorkOrdersAvailableMessage {
required uint64 operator_index = 1;
}
message QueryExecutionSuccessMessage {
optional CatalogRelationSchema query_result_relation = 1;
}
message QueryExecutionErrorMessage {
required string error_message = 1;
}
message QueryResultRelationMessage {
required int32 relation_id = 1;
repeated fixed64 blocks = 2 [packed=true];
}
message QueryResultRelationResponseMessage {
required int32 relation_id = 1;
}