mirror of https://github.com/milvus-io/milvus.git
Use single instance for mergedTimeTickerSender (#27730)
Signed-off-by: lixinguo <xinguo.li@zilliz.com> Co-authored-by: lixinguo <xinguo.li@zilliz.com>pull/28379/head
parent
4d30405a6e
commit
5365748338
|
@ -743,7 +743,7 @@ func newInsertBufferNode(
|
|||
wTtMsgStream := wTt
|
||||
wTtMsgStream.EnableProduce(true)
|
||||
|
||||
mt := newMergedTimeTickerSender(func(ts Timestamp, segmentIDs []int64) error {
|
||||
mt := getOrCreateMergedTimeTickerSender(func(ts Timestamp, segmentIDs []int64) error {
|
||||
stats := make([]*commonpb.SegmentStats, 0, len(segmentIDs))
|
||||
for _, sid := range segmentIDs {
|
||||
stat, err := config.channel.getSegmentStatisticsUpdates(sid)
|
||||
|
|
|
@ -46,19 +46,29 @@ type mergedTimeTickerSender struct {
|
|||
closeOnce sync.Once
|
||||
}
|
||||
|
||||
func newMergedTimeTickerSender(send sendTimeTick) *mergedTimeTickerSender {
|
||||
mt := &mergedTimeTickerSender{
|
||||
var (
|
||||
uniqueMergedTimeTickerSender *mergedTimeTickerSender
|
||||
getUniqueMergedTimeTickerSender sync.Once
|
||||
)
|
||||
|
||||
func newUniqueMergedTimeTickerSender(send sendTimeTick) *mergedTimeTickerSender {
|
||||
return &mergedTimeTickerSender{
|
||||
ts: 0, // 0 for not tt send
|
||||
segmentIDs: make(map[int64]struct{}),
|
||||
cond: sync.NewCond(&sync.Mutex{}),
|
||||
send: send,
|
||||
closeCh: make(chan struct{}),
|
||||
}
|
||||
mt.wg.Add(2)
|
||||
go mt.tick()
|
||||
go mt.work()
|
||||
}
|
||||
|
||||
return mt
|
||||
func getOrCreateMergedTimeTickerSender(send sendTimeTick) *mergedTimeTickerSender {
|
||||
getUniqueMergedTimeTickerSender.Do(func() {
|
||||
uniqueMergedTimeTickerSender = newUniqueMergedTimeTickerSender(send)
|
||||
})
|
||||
uniqueMergedTimeTickerSender.wg.Add(2)
|
||||
go uniqueMergedTimeTickerSender.tick()
|
||||
go uniqueMergedTimeTickerSender.work()
|
||||
return uniqueMergedTimeTickerSender
|
||||
}
|
||||
|
||||
func (mt *mergedTimeTickerSender) bufferTs(ts Timestamp, segmentIDs []int64) {
|
||||
|
|
Loading…
Reference in New Issue