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:
discord9
2026-03-06 15:07:34 +08:00
committed by GitHub
parent 4010e25ea0
commit 092ba1d01e
8 changed files with 9653 additions and 123 deletions
+76
View File
@@ -32,6 +32,10 @@ type ProcedureServiceClient interface {
Migrate(ctx context.Context, in *MigrateRegionRequest, opts ...grpc.CallOption) (*MigrateRegionResponse, error)
// Query all submitted procedures details
Details(ctx context.Context, in *ProcedureDetailRequest, opts ...grpc.CallOption) (*ProcedureDetailResponse, error)
// Manually trigger GC for a specific list of regions
GcRegions(ctx context.Context, in *GcRegionsRequest, opts ...grpc.CallOption) (*GcRegionsResponse, error)
// Manually trigger GC for a table (all its regions)
GcTable(ctx context.Context, in *GcTableRequest, opts ...grpc.CallOption) (*GcTableResponse, error)
}
type procedureServiceClient struct {
@@ -87,6 +91,24 @@ func (c *procedureServiceClient) Details(ctx context.Context, in *ProcedureDetai
return out, nil
}
func (c *procedureServiceClient) GcRegions(ctx context.Context, in *GcRegionsRequest, opts ...grpc.CallOption) (*GcRegionsResponse, error) {
out := new(GcRegionsResponse)
err := c.cc.Invoke(ctx, "/greptime.v1.meta.ProcedureService/gc_regions", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *procedureServiceClient) GcTable(ctx context.Context, in *GcTableRequest, opts ...grpc.CallOption) (*GcTableResponse, error) {
out := new(GcTableResponse)
err := c.cc.Invoke(ctx, "/greptime.v1.meta.ProcedureService/gc_table", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// ProcedureServiceServer is the server API for ProcedureService service.
// All implementations must embed UnimplementedProcedureServiceServer
// for forward compatibility
@@ -101,6 +123,10 @@ type ProcedureServiceServer interface {
Migrate(context.Context, *MigrateRegionRequest) (*MigrateRegionResponse, error)
// Query all submitted procedures details
Details(context.Context, *ProcedureDetailRequest) (*ProcedureDetailResponse, error)
// Manually trigger GC for a specific list of regions
GcRegions(context.Context, *GcRegionsRequest) (*GcRegionsResponse, error)
// Manually trigger GC for a table (all its regions)
GcTable(context.Context, *GcTableRequest) (*GcTableResponse, error)
mustEmbedUnimplementedProcedureServiceServer()
}
@@ -123,6 +149,12 @@ func (UnimplementedProcedureServiceServer) Migrate(context.Context, *MigrateRegi
func (UnimplementedProcedureServiceServer) Details(context.Context, *ProcedureDetailRequest) (*ProcedureDetailResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Details not implemented")
}
func (UnimplementedProcedureServiceServer) GcRegions(context.Context, *GcRegionsRequest) (*GcRegionsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GcRegions not implemented")
}
func (UnimplementedProcedureServiceServer) GcTable(context.Context, *GcTableRequest) (*GcTableResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GcTable not implemented")
}
func (UnimplementedProcedureServiceServer) mustEmbedUnimplementedProcedureServiceServer() {}
// UnsafeProcedureServiceServer may be embedded to opt out of forward compatibility for this service.
@@ -226,6 +258,42 @@ func _ProcedureService_Details_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _ProcedureService_GcRegions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GcRegionsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ProcedureServiceServer).GcRegions(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/greptime.v1.meta.ProcedureService/gc_regions",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ProcedureServiceServer).GcRegions(ctx, req.(*GcRegionsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ProcedureService_GcTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GcTableRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ProcedureServiceServer).GcTable(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/greptime.v1.meta.ProcedureService/gc_table",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ProcedureServiceServer).GcTable(ctx, req.(*GcTableRequest))
}
return interceptor(ctx, in, info, handler)
}
// ProcedureService_ServiceDesc is the grpc.ServiceDesc for ProcedureService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@@ -253,6 +321,14 @@ var ProcedureService_ServiceDesc = grpc.ServiceDesc{
MethodName: "details",
Handler: _ProcedureService_Details_Handler,
},
{
MethodName: "gc_regions",
Handler: _ProcedureService_GcRegions_Handler,
},
{
MethodName: "gc_table",
Handler: _ProcedureService_GcTable_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "greptime/v1/meta/procedure.proto",