mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-08 10:08:42 +08:00
Remove QueryMsgStream in MqFactory interface (#26374)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
This commit is contained in:
parent
4742049ecf
commit
78bc688d16
@ -216,7 +216,6 @@ type Factory interface {
|
|||||||
Init(params *paramtable.ComponentParam) error
|
Init(params *paramtable.ComponentParam) error
|
||||||
NewMsgStream(ctx context.Context) (MsgStream, error)
|
NewMsgStream(ctx context.Context) (MsgStream, error)
|
||||||
NewTtMsgStream(ctx context.Context) (MsgStream, error)
|
NewTtMsgStream(ctx context.Context) (MsgStream, error)
|
||||||
NewQueryMsgStream(ctx context.Context) (MsgStream, error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pulsar
|
// Pulsar
|
||||||
|
|||||||
@ -56,10 +56,6 @@ func (mm *mockMsgStreamFactory) NewTtMsgStream(ctx context.Context) (msgstream.M
|
|||||||
return &mockTtMsgStream{}, nil
|
return &mockTtMsgStream{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (mm *mockMsgStreamFactory) NewQueryMsgStream(ctx context.Context) (msgstream.MsgStream, error) {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (mm *mockMsgStreamFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
func (mm *mockMsgStreamFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -245,11 +245,6 @@ func (f *mockFactory) NewTtMsgStream(context.Context) (msgstream.MsgStream, erro
|
|||||||
return nil, errNotImplErr
|
return nil, errNotImplErr
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *mockFactory) NewQueryMsgStream(context.Context) (msgstream.MsgStream, error) {
|
|
||||||
// TODO
|
|
||||||
return nil, errNotImplErr
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *mockFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
func (f *mockFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
||||||
// TODO
|
// TODO
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@ -41,9 +41,4 @@ func TestRmsFactory(t *testing.T) {
|
|||||||
_, err = rmsFactory.NewTtMsgStream(ctx)
|
_, err = rmsFactory.NewTtMsgStream(ctx)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = rmsFactory.NewQueryMsgStream(ctx)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
err = rmsFactory.NewMsgStreamDisposer(ctx)([]string{"hello"}, "xx")
|
|
||||||
assert.NoError(t, err)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -113,21 +113,12 @@ func getDmlChannelsFunc(ctx context.Context, rc types.RootCoord) getChannelsFunc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// streamType indicates which type of message stream should be created.
|
|
||||||
type streamType int
|
|
||||||
|
|
||||||
const (
|
|
||||||
dmlStreamType streamType = iota
|
|
||||||
dqlStreamType
|
|
||||||
)
|
|
||||||
|
|
||||||
type singleTypeChannelsMgr struct {
|
type singleTypeChannelsMgr struct {
|
||||||
infos map[UniqueID]streamInfos // collection id -> stream infos
|
infos map[UniqueID]streamInfos // collection id -> stream infos
|
||||||
mu sync.RWMutex
|
mu sync.RWMutex
|
||||||
|
|
||||||
getChannelsFunc getChannelsFuncType
|
getChannelsFunc getChannelsFuncType
|
||||||
repackFunc repackFuncType
|
repackFunc repackFuncType
|
||||||
singleStreamType streamType
|
|
||||||
msgStreamFactory msgstream.Factory
|
msgStreamFactory msgstream.Factory
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,15 +175,11 @@ func (mgr *singleTypeChannelsMgr) streamExistPrivate(collectionID UniqueID) bool
|
|||||||
return ok && streamInfos.stream != nil
|
return ok && streamInfos.stream != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func createStream(factory msgstream.Factory, streamType streamType, pchans []pChan, repack repackFuncType) (msgstream.MsgStream, error) {
|
func createStream(factory msgstream.Factory, pchans []pChan, repack repackFuncType) (msgstream.MsgStream, error) {
|
||||||
var stream msgstream.MsgStream
|
var stream msgstream.MsgStream
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if streamType == dqlStreamType {
|
|
||||||
stream, err = factory.NewQueryMsgStream(context.Background())
|
|
||||||
} else {
|
|
||||||
stream, err = factory.NewMsgStream(context.Background())
|
stream, err = factory.NewMsgStream(context.Background())
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -240,7 +227,7 @@ func (mgr *singleTypeChannelsMgr) createMsgStream(collectionID UniqueID) (msgstr
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
stream, err := createStream(mgr.msgStreamFactory, mgr.singleStreamType, channelInfos.pchans, mgr.repackFunc)
|
stream, err := createStream(mgr.msgStreamFactory, channelInfos.pchans, mgr.repackFunc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// What if stream created by other goroutines?
|
// What if stream created by other goroutines?
|
||||||
log.Error("failed to create message stream", zap.Error(err), zap.Int64("collection", collectionID))
|
log.Error("failed to create message stream", zap.Error(err), zap.Int64("collection", collectionID))
|
||||||
@ -309,13 +296,11 @@ func newSingleTypeChannelsMgr(
|
|||||||
getChannelsFunc getChannelsFuncType,
|
getChannelsFunc getChannelsFuncType,
|
||||||
msgStreamFactory msgstream.Factory,
|
msgStreamFactory msgstream.Factory,
|
||||||
repackFunc repackFuncType,
|
repackFunc repackFuncType,
|
||||||
singleStreamType streamType,
|
|
||||||
) *singleTypeChannelsMgr {
|
) *singleTypeChannelsMgr {
|
||||||
return &singleTypeChannelsMgr{
|
return &singleTypeChannelsMgr{
|
||||||
infos: make(map[UniqueID]streamInfos),
|
infos: make(map[UniqueID]streamInfos),
|
||||||
getChannelsFunc: getChannelsFunc,
|
getChannelsFunc: getChannelsFunc,
|
||||||
repackFunc: repackFunc,
|
repackFunc: repackFunc,
|
||||||
singleStreamType: singleStreamType,
|
|
||||||
msgStreamFactory: msgStreamFactory,
|
msgStreamFactory: msgStreamFactory,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -355,6 +340,6 @@ func newChannelsMgrImpl(
|
|||||||
msgStreamFactory msgstream.Factory,
|
msgStreamFactory msgstream.Factory,
|
||||||
) *channelsMgrImpl {
|
) *channelsMgrImpl {
|
||||||
return &channelsMgrImpl{
|
return &channelsMgrImpl{
|
||||||
dmlChannelsMgr: newSingleTypeChannelsMgr(getDmlChannelsFunc, msgStreamFactory, dmlRepackFunc, dmlStreamType),
|
dmlChannelsMgr: newSingleTypeChannelsMgr(getDmlChannelsFunc, msgStreamFactory, dmlRepackFunc),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -213,7 +213,7 @@ func Test_createStream(t *testing.T) {
|
|||||||
factory.fQStream = func(ctx context.Context) (msgstream.MsgStream, error) {
|
factory.fQStream = func(ctx context.Context) (msgstream.MsgStream, error) {
|
||||||
return nil, errors.New("mock")
|
return nil, errors.New("mock")
|
||||||
}
|
}
|
||||||
_, err := createStream(factory, dmlStreamType, nil, nil)
|
_, err := createStream(factory, nil, nil)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -222,7 +222,7 @@ func Test_createStream(t *testing.T) {
|
|||||||
factory.f = func(ctx context.Context) (msgstream.MsgStream, error) {
|
factory.f = func(ctx context.Context) (msgstream.MsgStream, error) {
|
||||||
return nil, errors.New("mock")
|
return nil, errors.New("mock")
|
||||||
}
|
}
|
||||||
_, err := createStream(factory, dqlStreamType, nil, nil)
|
_, err := createStream(factory, nil, nil)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -231,7 +231,7 @@ func Test_createStream(t *testing.T) {
|
|||||||
factory.f = func(ctx context.Context) (msgstream.MsgStream, error) {
|
factory.f = func(ctx context.Context) (msgstream.MsgStream, error) {
|
||||||
return newMockMsgStream(), nil
|
return newMockMsgStream(), nil
|
||||||
}
|
}
|
||||||
_, err := createStream(factory, dmlStreamType, []string{"111"}, func(tsMsgs []msgstream.TsMsg, hashKeys [][]int32) (map[int32]*msgstream.MsgPack, error) {
|
_, err := createStream(factory, []string{"111"}, func(tsMsgs []msgstream.TsMsg, hashKeys [][]int32) (map[int32]*msgstream.MsgPack, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -271,7 +271,6 @@ func Test_singleTypeChannelsMgr_createMsgStream(t *testing.T) {
|
|||||||
return channelInfos{vchans: []string{"111", "222"}, pchans: []string{"111"}}, nil
|
return channelInfos{vchans: []string{"111", "222"}, pchans: []string{"111"}}, nil
|
||||||
},
|
},
|
||||||
msgStreamFactory: factory,
|
msgStreamFactory: factory,
|
||||||
singleStreamType: dmlStreamType,
|
|
||||||
repackFunc: nil,
|
repackFunc: nil,
|
||||||
}
|
}
|
||||||
_, err := m.createMsgStream(100)
|
_, err := m.createMsgStream(100)
|
||||||
@ -289,7 +288,6 @@ func Test_singleTypeChannelsMgr_createMsgStream(t *testing.T) {
|
|||||||
return channelInfos{vchans: []string{"111", "222"}, pchans: []string{"111"}}, nil
|
return channelInfos{vchans: []string{"111", "222"}, pchans: []string{"111"}}, nil
|
||||||
},
|
},
|
||||||
msgStreamFactory: factory,
|
msgStreamFactory: factory,
|
||||||
singleStreamType: dmlStreamType,
|
|
||||||
repackFunc: nil,
|
repackFunc: nil,
|
||||||
}
|
}
|
||||||
stream, err := m.createMsgStream(100)
|
stream, err := m.createMsgStream(100)
|
||||||
@ -356,7 +354,6 @@ func Test_singleTypeChannelsMgr_getStream(t *testing.T) {
|
|||||||
return channelInfos{vchans: []string{"111", "222"}, pchans: []string{"111"}}, nil
|
return channelInfos{vchans: []string{"111", "222"}, pchans: []string{"111"}}, nil
|
||||||
},
|
},
|
||||||
msgStreamFactory: factory,
|
msgStreamFactory: factory,
|
||||||
singleStreamType: dmlStreamType,
|
|
||||||
repackFunc: nil,
|
repackFunc: nil,
|
||||||
}
|
}
|
||||||
stream, err := m.getOrCreateStream(100)
|
stream, err := m.getOrCreateStream(100)
|
||||||
|
|||||||
@ -58,13 +58,6 @@ func (m *mockMsgStreamFactory) NewTtMsgStream(ctx context.Context) (msgstream.Ms
|
|||||||
return nil, errors.New("mock")
|
return nil, errors.New("mock")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *mockMsgStreamFactory) NewQueryMsgStream(ctx context.Context) (msgstream.MsgStream, error) {
|
|
||||||
if m.fQStream != nil {
|
|
||||||
return m.fQStream(ctx)
|
|
||||||
}
|
|
||||||
return nil, errors.New("mock")
|
|
||||||
}
|
|
||||||
|
|
||||||
func newMockMsgStreamFactory() *mockMsgStreamFactory {
|
func newMockMsgStreamFactory() *mockMsgStreamFactory {
|
||||||
return &mockMsgStreamFactory{}
|
return &mockMsgStreamFactory{}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -326,10 +326,6 @@ func (factory *simpleMockMsgStreamFactory) NewTtMsgStream(ctx context.Context) (
|
|||||||
return newSimpleMockMsgStream(), nil
|
return newSimpleMockMsgStream(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (factory *simpleMockMsgStreamFactory) NewQueryMsgStream(ctx context.Context) (msgstream.MsgStream, error) {
|
|
||||||
return newSimpleMockMsgStream(), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (factory *simpleMockMsgStreamFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
func (factory *simpleMockMsgStreamFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -144,10 +144,6 @@ func (f *DefaultFactory) NewTtMsgStream(ctx context.Context) (msgstream.MsgStrea
|
|||||||
return f.msgStreamFactory.NewTtMsgStream(ctx)
|
return f.msgStreamFactory.NewTtMsgStream(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *DefaultFactory) NewQueryMsgStream(ctx context.Context) (msgstream.MsgStream, error) {
|
|
||||||
return f.msgStreamFactory.NewQueryMsgStream(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *DefaultFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
func (f *DefaultFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
||||||
return f.msgStreamFactory.NewMsgStreamDisposer(ctx)
|
return f.msgStreamFactory.NewMsgStreamDisposer(ctx)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,16 +40,6 @@ func (f *CommonFactory) NewTtMsgStream(ctx context.Context) (ms MsgStream, err e
|
|||||||
return NewMqTtMsgStream(ctx, f.ReceiveBufSize, f.MQBufSize, cli, f.DispatcherFactory.NewUnmarshalDispatcher())
|
return NewMqTtMsgStream(ctx, f.ReceiveBufSize, f.MQBufSize, cli, f.DispatcherFactory.NewUnmarshalDispatcher())
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewQueryMsgStream is used to generate a new QueryMsgstream object
|
|
||||||
func (f *CommonFactory) NewQueryMsgStream(ctx context.Context) (ms MsgStream, err error) {
|
|
||||||
defer wrapError(&err, "NewQueryMsgStream")
|
|
||||||
cli, err := f.Newer()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return NewMqMsgStream(ctx, f.ReceiveBufSize, f.MQBufSize, cli, f.DispatcherFactory.NewUnmarshalDispatcher())
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewMsgStreamDisposer returns a function that can be used to dispose of a message stream.
|
// NewMsgStreamDisposer returns a function that can be used to dispose of a message stream.
|
||||||
// The returned function takes a slice of channel names and a subscription name, and
|
// The returned function takes a slice of channel names and a subscription name, and
|
||||||
// disposes of the message stream associated with those arguments.
|
// disposes of the message stream associated with those arguments.
|
||||||
|
|||||||
@ -82,9 +82,6 @@ func testFactoryCommonOperation(t *testing.T, f Factory) {
|
|||||||
_, err = f.NewTtMsgStream(ctx)
|
_, err = f.NewTtMsgStream(ctx)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = f.NewQueryMsgStream(ctx)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
err = f.NewMsgStreamDisposer(ctx)([]string{"hello"}, "xx")
|
err = f.NewMsgStreamDisposer(ctx)([]string{"hello"}, "xx")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,11 +110,6 @@ func (f *PmsFactory) getAuthentication() (pulsar.Authentication, error) {
|
|||||||
return auth, nil
|
return auth, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewQueryMsgStream is used to generate a new QueryMsgstream object
|
|
||||||
func (f *PmsFactory) NewQueryMsgStream(ctx context.Context) (MsgStream, error) {
|
|
||||||
return f.NewMsgStream(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *PmsFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
func (f *PmsFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
||||||
return func(channels []string, subname string) error {
|
return func(channels []string, subname string) error {
|
||||||
// try to delete the old subscription
|
// try to delete the old subscription
|
||||||
@ -166,10 +161,6 @@ func (f *KmsFactory) NewTtMsgStream(ctx context.Context) (MsgStream, error) {
|
|||||||
return NewMqTtMsgStream(ctx, f.ReceiveBufSize, f.MQBufSize, kafkaClient, f.dispatcherFactory.NewUnmarshalDispatcher())
|
return NewMqTtMsgStream(ctx, f.ReceiveBufSize, f.MQBufSize, kafkaClient, f.dispatcherFactory.NewUnmarshalDispatcher())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *KmsFactory) NewQueryMsgStream(ctx context.Context) (MsgStream, error) {
|
|
||||||
return f.NewMsgStream(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *KmsFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
func (f *KmsFactory) NewMsgStreamDisposer(ctx context.Context) func([]string, string) error {
|
||||||
return func(channels []string, subname string) error {
|
return func(channels []string, subname string) error {
|
||||||
msgstream, err := f.NewMsgStream(ctx)
|
msgstream, err := f.NewMsgStream(ctx)
|
||||||
|
|||||||
@ -34,9 +34,6 @@ func TestPmsFactory(t *testing.T) {
|
|||||||
_, err = pmsFactory.NewTtMsgStream(ctx)
|
_, err = pmsFactory.NewTtMsgStream(ctx)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = pmsFactory.NewQueryMsgStream(ctx)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
err = pmsFactory.NewMsgStreamDisposer(ctx)([]string{"hello"}, "xx")
|
err = pmsFactory.NewMsgStreamDisposer(ctx)([]string{"hello"}, "xx")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
@ -58,9 +55,6 @@ func TestPmsFactoryWithAuth(t *testing.T) {
|
|||||||
_, err = pmsFactory.NewTtMsgStream(ctx)
|
_, err = pmsFactory.NewTtMsgStream(ctx)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = pmsFactory.NewQueryMsgStream(ctx)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
Params.Save(Params.PulsarCfg.AuthParams.Key, "")
|
Params.Save(Params.PulsarCfg.AuthParams.Key, "")
|
||||||
pmsFactory = NewPmsFactory(config)
|
pmsFactory = NewPmsFactory(config)
|
||||||
|
|
||||||
@ -71,9 +65,6 @@ func TestPmsFactoryWithAuth(t *testing.T) {
|
|||||||
_, err = pmsFactory.NewTtMsgStream(ctx)
|
_, err = pmsFactory.NewTtMsgStream(ctx)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
_, err = pmsFactory.NewQueryMsgStream(ctx)
|
|
||||||
assert.Error(t, err)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestKafkaFactory(t *testing.T) {
|
func TestKafkaFactory(t *testing.T) {
|
||||||
@ -86,9 +77,6 @@ func TestKafkaFactory(t *testing.T) {
|
|||||||
_, err = kmsFactory.NewTtMsgStream(ctx)
|
_, err = kmsFactory.NewTtMsgStream(ctx)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = kmsFactory.NewQueryMsgStream(ctx)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
// err = kmsFactory.NewMsgStreamDisposer(ctx)([]string{"hello"}, "xx")
|
// err = kmsFactory.NewMsgStreamDisposer(ctx)([]string{"hello"}, "xx")
|
||||||
// assert.NoError(t, err)
|
// assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,6 +73,5 @@ type MsgStream interface {
|
|||||||
type Factory interface {
|
type Factory interface {
|
||||||
NewMsgStream(ctx context.Context) (MsgStream, error)
|
NewMsgStream(ctx context.Context) (MsgStream, error)
|
||||||
NewTtMsgStream(ctx context.Context) (MsgStream, error)
|
NewTtMsgStream(ctx context.Context) (MsgStream, error)
|
||||||
NewQueryMsgStream(ctx context.Context) (MsgStream, error)
|
|
||||||
NewMsgStreamDisposer(ctx context.Context) func([]string, string) error
|
NewMsgStreamDisposer(ctx context.Context) func([]string, string) error
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user