From 7d81749860633f833a171f319e72e7d538996fdd Mon Sep 17 00:00:00 2001 From: bufferflies <1045931706@qq.com> Date: Tue, 29 Mar 2022 15:53:11 +0800 Subject: [PATCH] update Signed-off-by: bufferflies <1045931706@qq.com> --- server/cluster/cluster.go | 17 +++++------------ server/core/region.go | 6 +++--- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/server/cluster/cluster.go b/server/cluster/cluster.go index 56e20ee2b868..0906ff9e302b 100644 --- a/server/cluster/cluster.go +++ b/server/cluster/cluster.go @@ -66,7 +66,6 @@ const ( // since the once the store is add or remove, we shouldn't return an error even if the store limit is failed to persist. persistLimitRetryTimes = 5 persistLimitWaitTime = 100 * time.Millisecond - retry = 3 ) // Server is the interface for cluster. @@ -615,18 +614,12 @@ func (c *RaftCluster) processBucketHeartbeat(buckets *metapb.Buckets) error { return errors.Errorf("region %v not found", buckets.GetRegionId()) } - for i := 0; i < retry; i++ { - old := region.GetBuckets() - // region should not update if the version of the buckets is less than the old one. - if old != nil && old.Version >= buckets.Version { - bucketEventCounter.WithLabelValues("version_not_match").Inc() - return nil - } - if ok := region.UpdateBuckets(buckets); ok { - bucketEventCounter.WithLabelValues("update_cache").Inc() - return nil - } + // region should not update if the version of the buckets is less than the old one. + if old := region.GetBuckets(); old != nil && old.Version >= buckets.Version { + bucketEventCounter.WithLabelValues("version_not_match").Inc() + return nil } + region.UpdateBuckets(buckets) return nil } diff --git a/server/core/region.go b/server/core/region.go index 7fc259fd3293..4301b25ebc6d 100644 --- a/server/core/region.go +++ b/server/core/region.go @@ -413,10 +413,10 @@ func (r *RegionInfo) GetStat() *pdpb.RegionStat { } // UpdateBuckets sets the buckets of the region. -func (r *RegionInfo) UpdateBuckets(buckets *metapb.Buckets) bool { +func (r *RegionInfo) UpdateBuckets(buckets *metapb.Buckets) { // bucket is only nil in test cases. if buckets == nil { - return true + return } // only need to update bucket keys,versions. newBuckets := &metapb.Buckets{ @@ -424,7 +424,7 @@ func (r *RegionInfo) UpdateBuckets(buckets *metapb.Buckets) bool { Version: buckets.GetVersion(), Keys: buckets.GetKeys(), } - return atomic.CompareAndSwapPointer(&r.buckets, r.buckets, unsafe.Pointer(newBuckets)) + atomic.StorePointer(&r.buckets, unsafe.Pointer(newBuckets)) } // GetBuckets returns the buckets of the region.