blob: dfb1cd53eb0c7072fca6eb905493bf7d28696fa6 [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.
//
/**
* 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 = "proto3";
package org.apache.pinot.common.proto;
import "plan.proto";
service PinotQueryWorker {
// Dispatch a QueryRequest to a PinotQueryWorker
rpc Submit(QueryRequest) returns (QueryResponse);
rpc Cancel(CancelRequest) returns (CancelResponse);
}
message CancelRequest {
int64 requestId = 1;
}
message CancelResponse {
// intentionally left empty
}
// QueryRequest is the dispatched content for all query stages to a physical worker.
message QueryRequest {
repeated StagePlan stagePlan = 1;
map<string, string> metadata = 2;
}
// QueryResponse is the dispatched response from worker, it doesn't contain actual data, only dispatch status.
message QueryResponse {
map<string, string> metadata = 1;
bytes payload = 2;
}
message StagePlan {
int32 stageId = 1;
StageNode stageRoot = 2;
StageMetadata stageMetadata = 3;
}
message StageMetadata {
repeated WorkerMetadata workerMetadata = 1;
map<string, string> customProperty = 2;
string serverAddress = 3;
repeated int32 workerIds = 4;
}
message WorkerMetadata {
string virtualAddress = 1;
map<int32, MailboxMetadata> mailboxMetadata = 2;
map<string, string> customProperty = 3;
}
message MailboxMetadata {
repeated string mailboxId = 1;
repeated string virtualAddress = 2;
map<string, string> customProperty = 3;
}