未验证 提交 241117dd 编写于 作者: C congqixia 提交者: GitHub

Use last end position in pursuit mode (#26144)

Signed-off-by: NCongqi Xia <congqi.xia@zilliz.com>
上级 d2649b63
......@@ -28,6 +28,7 @@ import (
"github.com/golang/protobuf/proto"
"github.com/milvus-io/milvus-proto/go-api/v2/commonpb"
"github.com/milvus-io/milvus-proto/go-api/v2/msgpb"
"github.com/samber/lo"
"go.uber.org/zap"
"github.com/milvus-io/milvus/pkg/log"
......@@ -594,8 +595,10 @@ func (ms *MqTtMsgStream) bufMsgPackToChannel() {
return
default:
timeTickBuf := make([]TsMsg, 0)
startMsgPosition := make([]*msgpb.MsgPosition, 0)
endMsgPositions := make([]*msgpb.MsgPosition, 0)
// startMsgPosition := make([]*msgpb.MsgPosition, 0)
// endMsgPositions := make([]*msgpb.MsgPosition, 0)
startPositions := make(map[string]*msgpb.MsgPosition)
endPositions := make(map[string]*msgpb.MsgPosition)
var endTs uint64
var size uint64
......@@ -623,6 +626,11 @@ func (ms *MqTtMsgStream) bufMsgPackToChannel() {
if len(msgs) == 0 {
continue
}
startPos := typeutil.Clone(ms.chanMsgPos[consumer])
channelName := startPos.ChannelName
if _, ok := startPositions[channelName]; !ok {
startPositions[channelName] = startPos
}
tempBuffer := make([]TsMsg, 0)
var timeTickMsg TsMsg
for _, v := range msgs {
......@@ -639,7 +647,7 @@ func (ms *MqTtMsgStream) bufMsgPackToChannel() {
}
ms.chanMsgBuf[consumer] = tempBuffer
startMsgPosition = append(startMsgPosition, proto.Clone(ms.chanMsgPos[consumer]).(*msgpb.MsgPosition))
// startMsgPosition = append(startMsgPosition, proto.Clone(ms.chanMsgPos[consumer]).(*msgpb.MsgPosition))
var newPos *msgpb.MsgPosition
if len(tempBuffer) > 0 {
// if tempBuffer is not empty, use tempBuffer[0] to seek
......@@ -649,7 +657,7 @@ func (ms *MqTtMsgStream) bufMsgPackToChannel() {
Timestamp: currTs,
MsgGroup: consumer.Subscription(),
}
endMsgPositions = append(endMsgPositions, newPos)
endPositions[channelName] = newPos
} else if timeTickMsg != nil {
// if tempBuffer is empty, use timeTickMsg to seek
newPos = &msgpb.MsgPosition{
......@@ -658,7 +666,7 @@ func (ms *MqTtMsgStream) bufMsgPackToChannel() {
Timestamp: currTs,
MsgGroup: consumer.Subscription(),
}
endMsgPositions = append(endMsgPositions, newPos)
endPositions[channelName] = newPos
}
ms.chanMsgPos[consumer] = newPos
}
......@@ -683,8 +691,8 @@ func (ms *MqTtMsgStream) bufMsgPackToChannel() {
BeginTs: ms.lastTimeStamp,
EndTs: endTs,
Msgs: uniqueMsgs,
StartPositions: startMsgPosition,
EndPositions: endMsgPositions,
StartPositions: lo.MapToSlice(startPositions, func(_ string, pos *msgpb.MsgPosition) *msgpb.MsgPosition { return pos }),
EndPositions: lo.MapToSlice(endPositions, func(_ string, pos *msgpb.MsgPosition) *msgpb.MsgPosition { return pos }),
}
select {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册