package exec.bit.control;

option java_package = "org.apache.drill.exec.proto";
option java_outer_classname = "BitControl";
option optimize_for = SPEED;

import "ExecutionProtos.proto";
import "Coordination.proto";
import "UserBitShared.proto";


////// BitControl RPC ///////
enum RpcType {
  HANDSHAKE = 0;
  ACK = 1;
  GOODBYE = 2;
    
  // bit requests
  REQ_INIATILIZE_FRAGMENT = 3; // Returns Handle
    
  REQ_CANCEL_FRAGMENT = 6; // send a cancellation message for a fragment, returns Ack
  REQ_RECEIVER_FINISHED = 7;
  REQ_FRAGMENT_STATUS = 8; // send a fragment status, return Ack
  REQ_BIT_STATUS = 9; // get bit status.
  REQ_QUERY_STATUS = 10;
      
    // bit responses
  RESP_FRAGMENT_HANDLE = 11;
  RESP_FRAGMENT_STATUS = 12;
  RESP_BIT_STATUS = 13;
  RESP_QUERY_STATUS = 14;
}


message BitControlHandshake{
  optional int32 rpc_version = 1;
  optional exec.shared.RpcChannel channel = 2 [default = BIT_CONTROL];
  optional DrillbitEndpoint endpoint = 3;
}

message BitStatus {
  repeated FragmentStatus fragment_status = 1;
}

message FragmentStatus {
  optional exec.shared.MinorFragmentProfile profile = 1;
  optional FragmentHandle handle = 2;
}

message PlanFragment {
  optional FragmentHandle handle = 1;
  optional float network_cost = 4;
  optional float cpu_cost = 5;
  optional float disk_cost = 6;
  optional float memory_cost = 7;
  optional string fragment_json = 8;
  optional DrillbitEndpoint assignment = 10;
  optional bool leaf_fragment = 9;
  optional DrillbitEndpoint foreman = 11;
  optional int64 mem_initial = 12 [default = 20000000]; // 20 megs
  optional int64 mem_max = 13 [default = 2000000000]; // 20 gigs
  optional int64 query_start_time = 14; // start time of query in milliseconds
  optional exec.shared.UserCredentials credentials = 15;
  optional int32 time_zone = 16;
  optional string options_json = 17;
}

message WorkQueueStatus{
  optional DrillbitEndpoint endpoint = 1;
  optional int32 queue_length = 2;
  optional int64 report_time = 3;
}

message FinishedReceiver {
  optional FragmentHandle receiver = 1;
  optional FragmentHandle sender = 2;
}
