Skip to content

Commit 3e27d52

Browse files
fast reload region on no-region-found error (tikv#1891) (tikv#1896)
X-Original-Commit: a093bf03c142c8d3dbdb6ec84143f43f0a339a88
1 parent f2a7fe7 commit 3e27d52

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

internal/locate/region_cache.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1828,12 +1828,16 @@ func (c *RegionCache) BatchLoadRegionsFromKey(bo *retry.Backoffer, startKey []by
18281828
return regions[len(regions)-1].EndKey(), nil
18291829
}
18301830

1831+
// AsyncInvalidateCachedRegion marks a cached region for reload on next access
1832+
// without invalidating it, so in-flight retries can still proceed.
1833+
// It sets needDelayedReloadReady directly, skipping the GC promotion from
1834+
// needDelayedReloadPending for faster reload.
18311835
func (c *RegionCache) AsyncInvalidateCachedRegion(id RegionVerID) {
18321836
cachedRegion := c.GetCachedRegionWithRLock(id)
18331837
if cachedRegion == nil {
18341838
return
18351839
}
1836-
cachedRegion.setSyncFlags(needDelayedReloadPending)
1840+
cachedRegion.setSyncFlags(needDelayedReloadReady)
18371841
}
18381842

18391843
// InvalidateCachedRegion removes a cached Region.

internal/locate/region_request_state_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ func testStaleRead(s *testRegionCacheStaleReadSuite, r *RegionCacheTestCase, zon
528528
return
529529
}
530530

531-
s.Equal(*asyncReload, region.checkSyncFlags(needDelayedReloadPending))
531+
s.Equal(*asyncReload, region.checkSyncFlags(needDelayedReloadPending|needDelayedReloadReady))
532532
}()
533533

534534
bo := retry.NewBackoffer(ctx, -1)

0 commit comments

Comments
 (0)