feat: admin gc (#308)
* feat: add gc admin rpc * chore: make all Signed-off-by: discord9 <discord9@163.com> * per review Signed-off-by: discord9 <discord9@163.com> * chore: per review Signed-off-by: discord9 <discord9@163.com> --------- Signed-off-by: discord9 <discord9@163.com>
This commit is contained in:
@@ -92,6 +92,47 @@ message ReconcileResponse {
|
||||
ProcedureId pid = 2;
|
||||
}
|
||||
|
||||
message GcRegionsRequest {
|
||||
RequestHeader header = 1;
|
||||
repeated uint64 region_ids = 2;
|
||||
// Whether to perform a full file listing on datanodes when GC'ing the regions.
|
||||
bool full_file_listing = 3;
|
||||
// Timeout in seconds for the entire GC procedure.
|
||||
uint32 timeout_secs = 4;
|
||||
}
|
||||
|
||||
message GcStats {
|
||||
// Number of regions requested for GC (accepted by the server side).
|
||||
uint64 processed_regions = 1;
|
||||
// Regions that need retry in the next GC round.
|
||||
repeated uint64 need_retry_regions = 2;
|
||||
// Number of deleted SST files.
|
||||
uint64 deleted_files = 3;
|
||||
// Number of deleted index files.
|
||||
uint64 deleted_indexes = 4;
|
||||
}
|
||||
|
||||
message GcRegionsResponse {
|
||||
ResponseHeader header = 1;
|
||||
GcStats stats = 2;
|
||||
}
|
||||
|
||||
message GcTableRequest {
|
||||
RequestHeader header = 1;
|
||||
string catalog_name = 2;
|
||||
string schema_name = 3;
|
||||
string table_name = 4;
|
||||
// Whether to perform a full file listing on datanodes when GC'ing the regions.
|
||||
bool full_file_listing = 5;
|
||||
// Timeout in seconds for the entire GC procedure.
|
||||
uint32 timeout_secs = 6;
|
||||
}
|
||||
|
||||
message GcTableResponse {
|
||||
ResponseHeader header = 1;
|
||||
GcStats stats = 2;
|
||||
}
|
||||
|
||||
service ProcedureService {
|
||||
// Query a submitted procedure state
|
||||
rpc query(QueryProcedureRequest) returns (ProcedureStateResponse);
|
||||
@@ -107,4 +148,10 @@ service ProcedureService {
|
||||
|
||||
// Query all submitted procedures details
|
||||
rpc details(ProcedureDetailRequest) returns (ProcedureDetailResponse);
|
||||
|
||||
// Manually trigger GC for a specific list of regions
|
||||
rpc gc_regions(GcRegionsRequest) returns (GcRegionsResponse);
|
||||
|
||||
// Manually trigger GC for a table (all its regions)
|
||||
rpc gc_table(GcTableRequest) returns (GcTableResponse);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user