feat: introduce reconcile interface (#264)

* feat: introduce reconcile interface

* chore: gen set_header

* chore: add comments

* feat: return procedure_id

* feat: add `ResolveStragey` and `Parallelism` to request

* chore: apply suggestions from CR
This commit is contained in:
Weny Xu
2025-08-04 16:50:33 +08:00
committed by GitHub
parent cc56a6cdac
commit 91c3d7b97a
10 changed files with 10392 additions and 1304 deletions
+43
View File
@@ -52,6 +52,46 @@ message ProcedureDetailResponse {
repeated ProcedureMeta procedures = 2;
}
enum ResolveStrategy {
UseLatest = 0;
UseMetasrv = 1;
AbortOnConflict = 2;
}
message ReconcileTable {
string catalog_name = 1;
string schema_name = 2;
string table_name = 3;
ResolveStrategy resolve_strategy = 4;
}
message ReconcileDatabase {
string catalog_name = 1;
string database_name = 2;
uint32 parallelism = 3;
ResolveStrategy resolve_strategy = 4;
}
message ReconcileCatalog {
string catalog_name = 1;
uint32 parallelism = 2;
ResolveStrategy resolve_strategy = 3;
}
message ReconcileRequest {
RequestHeader header = 1;
oneof target {
ReconcileTable reconcile_table = 2;
ReconcileDatabase reconcile_database = 3;
ReconcileCatalog reconcile_catalog = 4;
}
}
message ReconcileResponse {
ResponseHeader header = 1;
ProcedureId pid = 2;
}
service ProcedureService {
// Query a submitted procedure state
rpc query(QueryProcedureRequest) returns (ProcedureStateResponse);
@@ -59,6 +99,9 @@ service ProcedureService {
// Submits a DDL task
rpc ddl(DdlTaskRequest) returns (DdlTaskResponse);
// Submits a reconcile task
rpc reconcile(ReconcileRequest) returns (ReconcileResponse);
// Submits a region migration task
rpc migrate(MigrateRegionRequest) returns (MigrateRegionResponse);