fix: preserve leader cache configuration and record cache hits (#8583)

fix: preserve leader cache configuration and record cache hits (#8576)

Signed-off-by: WenyXu <wenymedia@gmail.com>
This commit is contained in:
Weny Xu
2026-07-21 18:43:27 +08:00
committed by GitHub
parent 63ef18a74a
commit 68214e36bb
2 changed files with 10 additions and 6 deletions
+5 -5
View File
@@ -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()
+5 -1
View File
@@ -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,