mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +08:00
enhance: Rename Compaction to CompactionV2 (#33858)
Due to the removal of injection and syncSegments from the compaction, we need to ensure that no compaction is successfully executed during the rolling upgrade. This PR renames Compaction to CompactionV2, with the following effects: - New datacoord + old datanode: Utilizes the CompactionV2 interface, resulting in the datanode error "CompactionV2 not implemented," causing compaction to fail; - Old datacoord + new datanode: Utilizes the CompactionV1 interface, resulting in the datanode error "CompactionV1 not implemented," causing compaction to fail. issue: https://github.com/milvus-io/milvus/issues/32809 Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
This commit is contained in:
parent
d43ec4db0b
commit
8537f3daeb
@ -265,7 +265,7 @@ func (c *mockDataNodeClient) GetMetrics(ctx context.Context, req *milvuspb.GetMe
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c *mockDataNodeClient) Compaction(ctx context.Context, req *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
func (c *mockDataNodeClient) CompactionV2(ctx context.Context, req *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
if c.ch != nil {
|
||||
c.ch <- struct{}{}
|
||||
if c.compactionResp != nil {
|
||||
|
||||
@ -213,7 +213,7 @@ func (c *SessionManagerImpl) Compaction(ctx context.Context, nodeID int64, plan
|
||||
return err
|
||||
}
|
||||
|
||||
resp, err := cli.Compaction(ctx, plan)
|
||||
resp, err := cli.CompactionV2(ctx, plan)
|
||||
if err := VerifyResponse(resp, err); err != nil {
|
||||
log.Warn("failed to execute compaction", zap.Int64("node", nodeID), zap.Error(err), zap.Int64("planID", plan.GetPlanID()))
|
||||
return err
|
||||
|
||||
@ -200,9 +200,9 @@ func (node *DataNode) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRe
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Compaction handles compaction request from DataCoord
|
||||
// CompactionV2 handles compaction request from DataCoord
|
||||
// returns status as long as compaction task enqueued or invalid
|
||||
func (node *DataNode) Compaction(ctx context.Context, req *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
func (node *DataNode) CompactionV2(ctx context.Context, req *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
log := log.Ctx(ctx).With(zap.Int64("planID", req.GetPlanID()))
|
||||
if err := merr.CheckHealthy(node.GetStateCode()); err != nil {
|
||||
log.Warn("DataNode.Compaction failed", zap.Int64("nodeId", node.GetNodeID()), zap.Error(err))
|
||||
|
||||
@ -226,7 +226,7 @@ func (s *DataNodeServicesSuite) TestCompaction() {
|
||||
Channel: dmChannelName,
|
||||
}
|
||||
|
||||
resp, err := node.Compaction(ctx, req)
|
||||
resp, err := node.CompactionV2(ctx, req)
|
||||
s.NoError(err)
|
||||
s.False(merr.Ok(resp))
|
||||
})
|
||||
@ -245,7 +245,7 @@ func (s *DataNodeServicesSuite) TestCompaction() {
|
||||
},
|
||||
}
|
||||
|
||||
resp, err := node.Compaction(ctx, req)
|
||||
resp, err := node.CompactionV2(ctx, req)
|
||||
s.NoError(err)
|
||||
s.False(merr.Ok(resp))
|
||||
})
|
||||
@ -265,7 +265,7 @@ func (s *DataNodeServicesSuite) TestCompaction() {
|
||||
Type: datapb.CompactionType_ClusteringCompaction,
|
||||
}
|
||||
|
||||
_, err := node.Compaction(ctx, req)
|
||||
_, err := node.CompactionV2(ctx, req)
|
||||
s.NoError(err)
|
||||
})
|
||||
}
|
||||
|
||||
@ -173,10 +173,10 @@ func (c *Client) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRequest
|
||||
})
|
||||
}
|
||||
|
||||
// Compaction return compaction by given plan
|
||||
func (c *Client) Compaction(ctx context.Context, req *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
// CompactionV2 return compaction by given plan
|
||||
func (c *Client) CompactionV2(ctx context.Context, req *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
return wrapGrpcCall(ctx, c, func(client datapb.DataNodeClient) (*commonpb.Status, error) {
|
||||
return client.Compaction(ctx, req)
|
||||
return client.CompactionV2(ctx, req)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -66,7 +66,7 @@ func Test_NewClient(t *testing.T) {
|
||||
r5, err := client.GetMetrics(ctx, nil)
|
||||
retCheck(retNotNil, r5, err)
|
||||
|
||||
r6, err := client.Compaction(ctx, nil)
|
||||
r6, err := client.CompactionV2(ctx, nil)
|
||||
retCheck(retNotNil, r6, err)
|
||||
|
||||
r8, err := client.ResendSegmentStats(ctx, nil)
|
||||
|
||||
@ -354,8 +354,8 @@ func (s *Server) GetMetrics(ctx context.Context, request *milvuspb.GetMetricsReq
|
||||
return s.datanode.GetMetrics(ctx, request)
|
||||
}
|
||||
|
||||
func (s *Server) Compaction(ctx context.Context, request *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
return s.datanode.Compaction(ctx, request)
|
||||
func (s *Server) CompactionV2(ctx context.Context, request *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
return s.datanode.CompactionV2(ctx, request)
|
||||
}
|
||||
|
||||
// GetCompactionState gets the Compaction tasks state of DataNode
|
||||
|
||||
@ -126,7 +126,7 @@ func (m *MockDataNode) GetMetrics(ctx context.Context, request *milvuspb.GetMetr
|
||||
return m.metricResp, m.err
|
||||
}
|
||||
|
||||
func (m *MockDataNode) Compaction(ctx context.Context, req *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
func (m *MockDataNode) CompactionV2(ctx context.Context, req *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
return m.status, m.err
|
||||
}
|
||||
|
||||
@ -289,7 +289,7 @@ func Test_NewServer(t *testing.T) {
|
||||
server.datanode = &MockDataNode{
|
||||
status: &commonpb.Status{},
|
||||
}
|
||||
resp, err := server.Compaction(ctx, nil)
|
||||
resp, err := server.CompactionV2(ctx, nil)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, resp)
|
||||
})
|
||||
|
||||
@ -87,8 +87,8 @@ func (_c *MockDataNode_CheckChannelOperationProgress_Call) RunAndReturn(run func
|
||||
return _c
|
||||
}
|
||||
|
||||
// Compaction provides a mock function with given fields: _a0, _a1
|
||||
func (_m *MockDataNode) Compaction(_a0 context.Context, _a1 *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
// CompactionV2 provides a mock function with given fields: _a0, _a1
|
||||
func (_m *MockDataNode) CompactionV2(_a0 context.Context, _a1 *datapb.CompactionPlan) (*commonpb.Status, error) {
|
||||
ret := _m.Called(_a0, _a1)
|
||||
|
||||
var r0 *commonpb.Status
|
||||
@ -113,31 +113,31 @@ func (_m *MockDataNode) Compaction(_a0 context.Context, _a1 *datapb.CompactionPl
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// MockDataNode_Compaction_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Compaction'
|
||||
type MockDataNode_Compaction_Call struct {
|
||||
// MockDataNode_CompactionV2_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CompactionV2'
|
||||
type MockDataNode_CompactionV2_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// Compaction is a helper method to define mock.On call
|
||||
// CompactionV2 is a helper method to define mock.On call
|
||||
// - _a0 context.Context
|
||||
// - _a1 *datapb.CompactionPlan
|
||||
func (_e *MockDataNode_Expecter) Compaction(_a0 interface{}, _a1 interface{}) *MockDataNode_Compaction_Call {
|
||||
return &MockDataNode_Compaction_Call{Call: _e.mock.On("Compaction", _a0, _a1)}
|
||||
func (_e *MockDataNode_Expecter) CompactionV2(_a0 interface{}, _a1 interface{}) *MockDataNode_CompactionV2_Call {
|
||||
return &MockDataNode_CompactionV2_Call{Call: _e.mock.On("CompactionV2", _a0, _a1)}
|
||||
}
|
||||
|
||||
func (_c *MockDataNode_Compaction_Call) Run(run func(_a0 context.Context, _a1 *datapb.CompactionPlan)) *MockDataNode_Compaction_Call {
|
||||
func (_c *MockDataNode_CompactionV2_Call) Run(run func(_a0 context.Context, _a1 *datapb.CompactionPlan)) *MockDataNode_CompactionV2_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run(args[0].(context.Context), args[1].(*datapb.CompactionPlan))
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockDataNode_Compaction_Call) Return(_a0 *commonpb.Status, _a1 error) *MockDataNode_Compaction_Call {
|
||||
func (_c *MockDataNode_CompactionV2_Call) Return(_a0 *commonpb.Status, _a1 error) *MockDataNode_CompactionV2_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockDataNode_Compaction_Call) RunAndReturn(run func(context.Context, *datapb.CompactionPlan) (*commonpb.Status, error)) *MockDataNode_Compaction_Call {
|
||||
func (_c *MockDataNode_CompactionV2_Call) RunAndReturn(run func(context.Context, *datapb.CompactionPlan) (*commonpb.Status, error)) *MockDataNode_CompactionV2_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
@ -142,8 +142,8 @@ func (_c *MockDataNodeClient_Close_Call) RunAndReturn(run func() error) *MockDat
|
||||
return _c
|
||||
}
|
||||
|
||||
// Compaction provides a mock function with given fields: ctx, in, opts
|
||||
func (_m *MockDataNodeClient) Compaction(ctx context.Context, in *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
// CompactionV2 provides a mock function with given fields: ctx, in, opts
|
||||
func (_m *MockDataNodeClient) CompactionV2(ctx context.Context, in *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
_va := make([]interface{}, len(opts))
|
||||
for _i := range opts {
|
||||
_va[_i] = opts[_i]
|
||||
@ -175,21 +175,21 @@ func (_m *MockDataNodeClient) Compaction(ctx context.Context, in *datapb.Compact
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// MockDataNodeClient_Compaction_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Compaction'
|
||||
type MockDataNodeClient_Compaction_Call struct {
|
||||
// MockDataNodeClient_CompactionV2_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CompactionV2'
|
||||
type MockDataNodeClient_CompactionV2_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// Compaction is a helper method to define mock.On call
|
||||
// CompactionV2 is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - in *datapb.CompactionPlan
|
||||
// - opts ...grpc.CallOption
|
||||
func (_e *MockDataNodeClient_Expecter) Compaction(ctx interface{}, in interface{}, opts ...interface{}) *MockDataNodeClient_Compaction_Call {
|
||||
return &MockDataNodeClient_Compaction_Call{Call: _e.mock.On("Compaction",
|
||||
func (_e *MockDataNodeClient_Expecter) CompactionV2(ctx interface{}, in interface{}, opts ...interface{}) *MockDataNodeClient_CompactionV2_Call {
|
||||
return &MockDataNodeClient_CompactionV2_Call{Call: _e.mock.On("CompactionV2",
|
||||
append([]interface{}{ctx, in}, opts...)...)}
|
||||
}
|
||||
|
||||
func (_c *MockDataNodeClient_Compaction_Call) Run(run func(ctx context.Context, in *datapb.CompactionPlan, opts ...grpc.CallOption)) *MockDataNodeClient_Compaction_Call {
|
||||
func (_c *MockDataNodeClient_CompactionV2_Call) Run(run func(ctx context.Context, in *datapb.CompactionPlan, opts ...grpc.CallOption)) *MockDataNodeClient_CompactionV2_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
variadicArgs := make([]grpc.CallOption, len(args)-2)
|
||||
for i, a := range args[2:] {
|
||||
@ -202,12 +202,12 @@ func (_c *MockDataNodeClient_Compaction_Call) Run(run func(ctx context.Context,
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockDataNodeClient_Compaction_Call) Return(_a0 *commonpb.Status, _a1 error) *MockDataNodeClient_Compaction_Call {
|
||||
func (_c *MockDataNodeClient_CompactionV2_Call) Return(_a0 *commonpb.Status, _a1 error) *MockDataNodeClient_CompactionV2_Call {
|
||||
_c.Call.Return(_a0, _a1)
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockDataNodeClient_Compaction_Call) RunAndReturn(run func(context.Context, *datapb.CompactionPlan, ...grpc.CallOption) (*commonpb.Status, error)) *MockDataNodeClient_Compaction_Call {
|
||||
func (_c *MockDataNodeClient_CompactionV2_Call) RunAndReturn(run func(context.Context, *datapb.CompactionPlan, ...grpc.CallOption) (*commonpb.Status, error)) *MockDataNodeClient_CompactionV2_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ service DataNode {
|
||||
// https://wiki.lfaidata.foundation/display/MIL/MEP+8+--+Add+metrics+for+proxy
|
||||
rpc GetMetrics(milvus.GetMetricsRequest) returns (milvus.GetMetricsResponse) {}
|
||||
|
||||
rpc Compaction(CompactionPlan) returns (common.Status) {}
|
||||
rpc CompactionV2(CompactionPlan) returns (common.Status) {}
|
||||
rpc GetCompactionState(CompactionStateRequest) returns (CompactionStateResponse) {}
|
||||
rpc SyncSegments(SyncSegmentsRequest) returns (common.Status) {}
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@ func (m *GrpcDataNodeClient) GetMetrics(ctx context.Context, in *milvuspb.GetMet
|
||||
return &milvuspb.GetMetricsResponse{}, m.Err
|
||||
}
|
||||
|
||||
func (m *GrpcDataNodeClient) Compaction(ctx context.Context, req *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
func (m *GrpcDataNodeClient) CompactionV2(ctx context.Context, req *datapb.CompactionPlan, opts ...grpc.CallOption) (*commonpb.Status, error) {
|
||||
return &commonpb.Status{}, m.Err
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user