mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-08-24 23:18:25 +00:00
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:
@@ -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()
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user