From 14f05650e3422ef2bebc471f7452eee204d2c6a0 Mon Sep 17 00:00:00 2001 From: wei liu Date: Thu, 27 Feb 2025 19:42:05 +0800 Subject: [PATCH] enhance: clean shard location cache after collection released (#40228) issue: #40077 pr: #40088 Signed-off-by: Wei Liu --- internal/querycoordv2/job/job_release.go | 9 +++++++++ internal/querycoordv2/job/job_test.go | 1 + internal/querycoordv2/services_test.go | 1 + 3 files changed, 11 insertions(+) diff --git a/internal/querycoordv2/job/job_release.go b/internal/querycoordv2/job/job_release.go index 57d216c8d2..5580c4fdfd 100644 --- a/internal/querycoordv2/job/job_release.go +++ b/internal/querycoordv2/job/job_release.go @@ -103,6 +103,11 @@ func (job *ReleaseCollectionJob) Execute() error { }, proxyutil.SetMsgType(commonpb.MsgType_ReleaseCollection)) + // try best clean shard leader cache + job.proxyManager.InvalidateShardLeaderCache(job.ctx, &proxypb.InvalidateShardLeaderCacheRequest{ + CollectionIDs: []int64{req.GetCollectionID()}, + }) + waitCollectionReleased(job.dist, job.checkerController, req.GetCollectionID()) metrics.QueryCoordReleaseCount.WithLabelValues(metrics.TotalLabel).Inc() metrics.QueryCoordReleaseCount.WithLabelValues(metrics.SuccessLabel).Inc() @@ -190,6 +195,10 @@ func (job *ReleasePartitionJob) Execute() error { CollectionID: req.GetCollectionID(), }, proxyutil.SetMsgType(commonpb.MsgType_ReleaseCollection)) + // try best clean shard leader cache + job.proxyManager.InvalidateShardLeaderCache(job.ctx, &proxypb.InvalidateShardLeaderCacheRequest{ + CollectionIDs: []int64{req.GetCollectionID()}, + }) waitCollectionReleased(job.dist, job.checkerController, req.GetCollectionID()) } else { diff --git a/internal/querycoordv2/job/job_test.go b/internal/querycoordv2/job/job_test.go index 3642cff155..c9e0f6c536 100644 --- a/internal/querycoordv2/job/job_test.go +++ b/internal/querycoordv2/job/job_test.go @@ -145,6 +145,7 @@ func (suite *JobSuite) SetupSuite() { suite.proxyManager = proxyutil.NewMockProxyClientManager(suite.T()) suite.proxyManager.EXPECT().InvalidateCollectionMetaCache(mock.Anything, mock.Anything, mock.Anything).Return(nil).Maybe() + suite.proxyManager.EXPECT().InvalidateShardLeaderCache(mock.Anything, mock.Anything).Return(nil).Maybe() } func (suite *JobSuite) SetupTest() { diff --git a/internal/querycoordv2/services_test.go b/internal/querycoordv2/services_test.go index 36b7d27b4e..a06dd6f61b 100644 --- a/internal/querycoordv2/services_test.go +++ b/internal/querycoordv2/services_test.go @@ -131,6 +131,7 @@ func (suite *ServiceSuite) SetupSuite() { suite.proxyManager = proxyutil.NewMockProxyClientManager(suite.T()) suite.proxyManager.EXPECT().InvalidateCollectionMetaCache(mock.Anything, mock.Anything, mock.Anything).Return(nil).Maybe() + suite.proxyManager.EXPECT().InvalidateShardLeaderCache(mock.Anything, mock.Anything).Return(nil).Maybe() } func (suite *ServiceSuite) SetupTest() {