mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +08:00
#33285 - add segment alloc interceptor for streamingnode. - add add manual alloc segment rpc for datacoord. --------- Signed-off-by: chyezh <chyezh@outlook.com>
32 lines
976 B
Go
32 lines
976 B
Go
package segment
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go.uber.org/zap"
|
|
|
|
"github.com/milvus-io/milvus/internal/streamingnode/server/wal/interceptors"
|
|
"github.com/milvus-io/milvus/internal/streamingnode/server/wal/interceptors/segment/manager"
|
|
"github.com/milvus-io/milvus/pkg/log"
|
|
"github.com/milvus-io/milvus/pkg/util/syncutil"
|
|
)
|
|
|
|
func NewInterceptorBuilder() interceptors.InterceptorBuilder {
|
|
return &interceptorBuilder{}
|
|
}
|
|
|
|
type interceptorBuilder struct{}
|
|
|
|
func (b *interceptorBuilder) Build(param interceptors.InterceptorBuildParam) interceptors.BasicInterceptor {
|
|
assignManager := syncutil.NewFuture[*manager.PChannelSegmentAllocManager]()
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
segmentInterceptor := &segmentInterceptor{
|
|
ctx: ctx,
|
|
cancel: cancel,
|
|
logger: log.With(zap.Any("pchannel", param.WALImpls.Channel())),
|
|
assignManager: assignManager,
|
|
}
|
|
go segmentInterceptor.recoverPChannelManager(param)
|
|
return segmentInterceptor
|
|
}
|