From 0361b51670278575594ab6748971ed5ad4cceeb3 Mon Sep 17 00:00:00 2001 From: shuiyisong Date: Tue, 20 Jun 2023 15:39:06 +0800 Subject: [PATCH] chore: try shrink --- .../src/handler/region_lease_handler.rs | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/meta-srv/src/handler/region_lease_handler.rs b/src/meta-srv/src/handler/region_lease_handler.rs index 6eeb0ef0bb..748506d46e 100644 --- a/src/meta-srv/src/handler/region_lease_handler.rs +++ b/src/meta-srv/src/handler/region_lease_handler.rs @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; use std::sync::Arc; use api::v1::meta::{HeartbeatRequest, RegionLease, Role}; @@ -20,6 +20,7 @@ use async_trait::async_trait; use catalog::helper::TableGlobalKey; use common_meta::ident::TableIdent; use common_meta::ClusterId; +use common_telemetry::warn; use store_api::storage::RegionNumber; use crate::error::Result; @@ -105,12 +106,21 @@ impl HeartbeatHandler for RegionLeaseHandler { .push(table::engine::region_number(x.id)); }); + let keys = if datanode_regions.len() > 128 { + let key_set: HashSet<&TableGlobalKey> = datanode_regions.keys().collect(); + warn!( + "before shrink:{}, after shrink: {}", + datanode_regions.len(), + key_set.len() + ); + key_set.into_iter().collect::>() + } else { + datanode_regions.keys().collect::>() + }; + // TODO(LFC): Retrieve table global values from some cache here. - let table_global_values = table_routes::batch_get_table_global_value( - &self.kv_store, - datanode_regions.keys().collect::>(), - ) - .await?; + let table_global_values = + table_routes::batch_get_table_global_value(&self.kv_store, keys).await?; let mut region_leases = Vec::with_capacity(datanode_regions.len()); for (table_global_key, local_regions) in datanode_regions {