| // 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. |
| |
| // This protobuf definition file actually requires protobuf3 despite using |
| // protobuf2 syntax. |
| syntax = "proto2"; |
| package kudu.subprocess; |
| |
| option java_package = "org.apache.kudu.subprocess"; |
| |
| import "google/protobuf/any.proto"; |
| import "kudu/common/wire_protocol.proto"; |
| |
| // EchoResponsePB simply echoes the data in EchoRequestPB as a response. |
| message EchoRequestPB { |
| required string data = 1; |
| |
| // Optional amount of time in milliseconds to sleep for. |
| optional int32 sleep_ms = 2; |
| } |
| message EchoResponsePB { |
| required string data = 1; |
| } |
| |
| // Metrics for the subprocess subsystem. |
| message SubprocessMetricsPB { |
| // Amount of time the request spent in the subprocess's inbound queue before |
| // being serviced. |
| optional int64 inbound_queue_time_ms = 1; |
| |
| // Amount of time the response spent in the subprocess's outbound queue |
| // before being sent over the pipe. |
| optional int64 outbound_queue_time_ms = 2; |
| |
| // Number of requests in the subprocess's inbound queue at the time the |
| // response is being returned from the subprocess. |
| optional int64 inbound_queue_length = 3; |
| |
| // Number of responses in the subprocess's outbound queue at the time the |
| // response is being returned from the subprocess. |
| optional int64 outbound_queue_length = 4; |
| |
| // The amount of time it took to execute the request (i.e. the time in |
| // between waiting in the inbound and outbound queues). |
| optional int64 execution_time_ms = 5; |
| } |
| |
| // Request sent to the subprocess. |
| message SubprocessRequestPB { |
| // A sequence number that uniquely identifies a call to the subprocess. This |
| // number is sent back in the Response and allows to match it to the original |
| // Request. |
| optional int64 id = 1; |
| |
| // The request. |
| optional google.protobuf.Any request = 3; |
| } |
| |
| // Sent by the subprocess in response to a request. |
| message SubprocessResponsePB { |
| optional int64 id = 1; |
| |
| // Only set if there was some kind of subprocess-side error. |
| optional AppStatusPB error = 2; |
| |
| // The subprocess response. Only set for requests that actually expect a |
| // response. |
| optional google.protobuf.Any response = 3; |
| |
| // Metrics for the generic subprocess subsystem. |
| optional SubprocessMetricsPB metrics = 4; |
| } |