milvus/pkg/proto/worker.proto
yihao.dai 142bd2fc05
enhance: Pooling for data tasks (#41256)
1. Add global scheduler for datacoord.
2. Define and implement new CreateTask, QueryTask, DropTask interfaces.
3. Refine Import, Compaction, Stats, Index task.

issue: https://github.com/milvus-io/milvus/issues/41123

Co-authored-by: Cai Zhang <cai.zhang@zilliz.com>
2025-05-20 21:06:24 +08:00

268 lines
6.5 KiB
Protocol Buffer

syntax = "proto3";
package milvus.proto.index;
option go_package = "github.com/milvus-io/milvus/pkg/v2/proto/workerpb";
import "common.proto";
import "schema.proto";
import "data_coord.proto";
import "index_coord.proto";
service IndexNode {
// Deprecated
rpc CreateJob(CreateJobRequest) returns (common.Status) {}
// Deprecated
rpc QueryJobs(QueryJobsRequest) returns (QueryJobsResponse) {}
// Deprecated
rpc DropJobs(DropJobsRequest) returns (common.Status) {}
// Deprecated
rpc GetJobStats(GetJobStatsRequest) returns (GetJobStatsResponse) {}
// Deprecated
rpc CreateJobV2(CreateJobV2Request) returns (common.Status) {}
// Deprecated
rpc QueryJobsV2(QueryJobsV2Request) returns (QueryJobsV2Response) {}
// Deprecated
rpc DropJobsV2(DropJobsV2Request) returns (common.Status) {}
rpc CreateTask(CreateTaskRequest) returns (common.Status) {}
rpc QueryTask(QueryTaskRequest) returns (QueryTaskResponse) {}
rpc DropTask(DropTaskRequest) returns (common.Status) {}
}
message CreateTaskRequest {
// request body
bytes payload = 1;
// request properties, must contain:
// - clusterID
// - taskID
// - taskType
// - taskSlot
map<string, string> properties = 2;
}
message QueryTaskRequest {
// request properties, which contain:
// - clusterID
// - taskID
// - taskType
map<string, string> properties = 1;
}
message QueryTaskResponse {
common.Status status = 1;
// response body
bytes payload = 2;
// response properties, which contain:
// - taskState
map<string, string> properties = 3;
}
message DropTaskRequest {
// request properties, which contain:
// - clusterID
// - taskID
// - taskType
map<string, string> properties = 1;
}
// CreateJobRequest is CreateIndexRequest
message CreateJobRequest {
string clusterID = 1;
string index_file_prefix = 2;
int64 buildID = 3;
repeated string data_paths = 4;
int64 index_version = 5;
int64 indexID = 6;
string index_name = 7;
index.StorageConfig storage_config = 8;
repeated common.KeyValuePair index_params = 9;
repeated common.KeyValuePair type_params = 10;
int64 num_rows = 11;
int32 current_index_version = 12;
int64 collectionID = 13;
int64 partitionID = 14;
int64 segmentID = 15;
int64 fieldID = 16;
string field_name = 17;
schema.DataType field_type = 18;
string store_path = 19;
int64 store_version = 20;
string index_store_path = 21;
int64 dim = 22;
repeated int64 data_ids = 23;
repeated index.OptionalFieldInfo optional_scalar_fields = 24;
schema.FieldSchema field = 25;
bool partition_key_isolation = 26;
int32 current_scalar_index_version = 27;
int64 storage_version = 28;
int64 lack_binlog_rows = 29;
int64 task_slot = 30;
repeated data.FieldBinlog insert_logs = 31;
}
message QueryJobsRequest {
string clusterID = 1;
repeated int64 taskIDs = 2;
}
message QueryJobsResponse {
common.Status status = 1;
string clusterID = 2;
repeated IndexTaskInfo index_infos = 3;
}
message DropJobsRequest {
string clusterID = 1;
repeated int64 taskIDs = 2;
}
message GetJobStatsRequest {
}
message GetJobStatsResponse {
common.Status status = 1;
int64 total_job_num = 2;
int64 in_progress_job_num = 3;
int64 enqueue_job_num = 4;
int64 available_slots = 5;
repeated index.JobInfo job_infos = 6;
// deprecated
bool enable_disk = 7;
int64 total_slots = 8;
}
message AnalyzeRequest {
string clusterID = 1;
int64 taskID = 2;
int64 collectionID = 3;
int64 partitionID = 4;
int64 fieldID = 5;
string fieldName = 6;
schema.DataType field_type = 7;
map<int64, index.SegmentStats> segment_stats = 8;
int64 version = 9;
index.StorageConfig storage_config = 10;
int64 dim = 11;
double max_train_size_ratio = 12;
int64 num_clusters = 13;
schema.FieldSchema field = 14;
double min_cluster_size_ratio = 15;
double max_cluster_size_ratio = 16;
int64 max_cluster_size = 17;
int64 task_slot = 18;
}
message CreateStatsRequest {
string clusterID = 1;
int64 taskID = 2;
int64 collectionID = 3;
int64 partitionID = 4;
string insert_channel = 5;
int64 segmentID = 6;
repeated data.FieldBinlog insert_logs = 7;
repeated data.FieldBinlog delta_logs = 8;
index.StorageConfig storage_config = 9;
schema.CollectionSchema schema = 10;
index.StatsSubJob subJobType = 11;
int64 targetSegmentID = 12;
int64 startLogID = 13;
int64 endLogID = 14;
int64 num_rows = 15;
int64 collection_ttl = 16;
uint64 current_ts = 17;
int64 task_version = 18;
uint64 binlogMaxSize = 19;
bool enable_json_key_stats = 20;
int64 json_key_stats_tantivy_memory = 21;
int64 json_key_stats_data_format = 22;
bool enable_json_key_stats_in_sort = 23;
int64 task_slot = 24;
int64 storage_version = 25;
int32 current_scalar_index_version = 26;
}
message CreateJobV2Request {
string clusterID = 1;
int64 taskID = 2;
index.JobType job_type = 3;
oneof request {
AnalyzeRequest analyze_request = 4;
CreateJobRequest index_request = 5;
CreateStatsRequest stats_request = 6;
}
}
message QueryJobsV2Request {
string clusterID = 1;
repeated int64 taskIDs = 2;
index.JobType job_type = 3;
}
message IndexTaskInfo {
int64 buildID = 1;
common.IndexState state = 2;
repeated string index_file_keys = 3;
uint64 serialized_size = 4;
string fail_reason = 5;
int32 current_index_version = 6;
int64 index_store_version = 7;
uint64 mem_size = 8;
int32 current_scalar_index_version = 9;
}
message IndexJobResults {
repeated IndexTaskInfo results = 1;
}
message AnalyzeResult {
int64 taskID = 1;
index.JobState state = 2;
string fail_reason = 3;
string centroids_file = 4;
}
message AnalyzeResults {
repeated AnalyzeResult results = 1;
}
message StatsResult {
int64 taskID = 1;
index.JobState state = 2;
string fail_reason = 3;
int64 collectionID = 4;
int64 partitionID = 5;
int64 segmentID = 6;
string channel = 7;
repeated data.FieldBinlog insert_logs = 8;
repeated data.FieldBinlog stats_logs = 9;
map<int64, data.TextIndexStats> text_stats_logs = 10;
int64 num_rows = 11;
repeated data.FieldBinlog bm25_logs = 12;
map<int64, data.JsonKeyStats> json_key_stats_logs = 13;
}
message StatsResults {
repeated StatsResult results = 1;
}
message QueryJobsV2Response {
common.Status status = 1;
string clusterID = 2;
oneof result {
IndexJobResults index_job_results = 3;
AnalyzeResults analyze_job_results = 4;
StatsResults stats_job_results = 5;
}
}
message DropJobsV2Request {
string clusterID = 1;
repeated int64 taskIDs = 2;
index.JobType job_type = 3;
}