From f25d1f9b2c4eb9d9ffaab00a11f634b48ef66286 Mon Sep 17 00:00:00 2001 From: congqixia Date: Mon, 25 Dec 2023 23:27:01 +0800 Subject: [PATCH] enhance: [cherry-pick] change protection to RLock for loadStreamDelete (#29452) Cherry-pick from master pr: #29450 See also #29332 Signed-off-by: Congqi Xia --- internal/querynodev2/delegator/delegator.go | 2 +- internal/querynodev2/delegator/delegator_data.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/querynodev2/delegator/delegator.go b/internal/querynodev2/delegator/delegator.go index 81970e6566..0a3f6cbfe7 100644 --- a/internal/querynodev2/delegator/delegator.go +++ b/internal/querynodev2/delegator/delegator.go @@ -98,7 +98,7 @@ type shardDelegator struct { tsafeManager tsafe.Manager pkOracle pkoracle.PkOracle // L0 delete buffer - deleteMut sync.Mutex + deleteMut sync.RWMutex deleteBuffer deletebuffer.DeleteBuffer[*deletebuffer.Item] // dispatcherClient msgdispatcher.Client factory msgstream.Factory diff --git a/internal/querynodev2/delegator/delegator_data.go b/internal/querynodev2/delegator/delegator_data.go index f03f65baa0..bc45a0ebff 100644 --- a/internal/querynodev2/delegator/delegator_data.go +++ b/internal/querynodev2/delegator/delegator_data.go @@ -433,8 +433,8 @@ func (sd *shardDelegator) loadStreamDelete(ctx context.Context, return candidate.ID(), candidate }) - sd.deleteMut.Lock() - defer sd.deleteMut.Unlock() + sd.deleteMut.RLock() + defer sd.deleteMut.RUnlock() // apply buffered delete for new segments // no goroutines here since qnv2 has no load merging logic for _, info := range infos {