From 68214e36bbeac8e596f193e9b402146f924f703c Mon Sep 17 00:00:00 2001 From: Weny Xu Date: Tue, 21 Jul 2026 18:43:27 +0800 Subject: [PATCH] fix: preserve leader cache configuration and record cache hits (#8583) fix: preserve leader cache configuration and record cache hits (#8576) Signed-off-by: WenyXu --- src/meta-srv/src/service/store/cached_kv.rs | 10 +++++----- src/meta-srv/src/state.rs | 6 +++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/meta-srv/src/service/store/cached_kv.rs b/src/meta-srv/src/service/store/cached_kv.rs index 052130f329..6526ebcd41 100644 --- a/src/meta-srv/src/service/store/cached_kv.rs +++ b/src/meta-srv/src/service/store/cached_kv.rs @@ -247,11 +247,6 @@ impl KvBackend for LeaderCachedKvBackend { } let cached_res = self.cache.batch_get(req.clone()).await?; - // The cache hit all keys - if cached_res.kvs.len() == req.keys.len() { - return Ok(cached_res); - } - let hit_keys = cached_res .kvs .iter() @@ -262,6 +257,11 @@ impl KvBackend for LeaderCachedKvBackend { .with_label_values(&["batch_get"]) .inc_by(hit_keys.len() as u64); + // The cache hit all keys + if cached_res.kvs.len() == req.keys.len() { + return Ok(cached_res); + } + let missed_keys = req .keys .iter() diff --git a/src/meta-srv/src/state.rs b/src/meta-srv/src/state.rs index 12eb708b5c..c5c4a843a8 100644 --- a/src/meta-srv/src/state.rs +++ b/src/meta-srv/src/state.rs @@ -98,7 +98,11 @@ impl State { pub fn become_leader(enable_leader_cache: bool) -> impl FnOnce(&State) -> State { move |prev| match prev { - State::Leader(leader) => State::Leader(LeaderState { ..leader.clone() }), + State::Leader(leader) => { + let mut new_leader = leader.clone(); + new_leader.enable_leader_cache = enable_leader_cache; + State::Leader(new_leader) + } State::Follower(follower) => State::Leader(LeaderState { server_addr: follower.server_addr.clone(), enable_leader_cache,