From 9c01221a002e9fd4a98e1db11257cad8e6401474 Mon Sep 17 00:00:00 2001 From: ZuoTiJia Date: Thu, 7 Sep 2023 18:36:59 +0800 Subject: [PATCH] refactor: rename `data_in` to `coord_data_in` --- config/src/limiter_config.rs | 16 ++++++------- coordinator/src/reader/mod.rs | 2 +- coordinator/src/service.rs | 6 ++--- meta/src/limiter/limiter_kind.rs | 9 +++---- meta/src/limiter/local_request_limiter.rs | 24 +++++++++---------- meta/src/limiter/mod.rs | 8 +++---- meta/src/limiter/none_limiter.rs | 8 +++---- meta/src/limiter/remote_request_limiter.rs | 8 +++---- .../sys_table/cluster_schema/tenants.result | 4 ++-- .../sys_table/cluster_schema/tenants.sql | 2 +- 10 files changed, 44 insertions(+), 43 deletions(-) diff --git a/config/src/limiter_config.rs b/config/src/limiter_config.rs index fcd843c41..3ffab1aa8 100644 --- a/config/src/limiter_config.rs +++ b/config/src/limiter_config.rs @@ -40,10 +40,10 @@ pub struct Bucket { #[derive(Serialize, Deserialize, Debug, Clone, Copy)] pub struct RequestLimiterConfig { - pub data_in: Option, - pub data_out: Option, - pub queries: Option, - pub writes: Option, + pub coord_data_in: Option, + pub coord_data_out: Option, + pub coord_queries: Option, + pub coord_writes: Option, } #[test] @@ -59,20 +59,20 @@ max_replicate_number = 2 max_retention_time = 30 -[request_config.data_in] +[request_config.coord_data_in] local_bucket = {max = 100, initial = 0} remote_bucket = {max = 100, initial = 0, refill = 100, interval = 100} -[request_config.data_out] +[request_config.coord_data_out] local_bucket = {max = 100, initial = 0} remote_bucket = {max = 100, initial = 0, refill = 100, interval = 100} -[request_config.data_writes] +[request_config.coord_data_writes] local_bucket = {max = 100, initial = 0} remote_bucket = {max = 100, initial = 0, refill = 100, interval = 100} -[request_config.data_queries] +[request_config.coord_data_queries] local_bucket = {max = 100, initial = 0} remote_bucket = {max = 100, initial = 0, refill = 100, interval = 100} "#; diff --git a/coordinator/src/reader/mod.rs b/coordinator/src/reader/mod.rs index 4085107ae..64d9bafb3 100644 --- a/coordinator/src/reader/mod.rs +++ b/coordinator/src/reader/mod.rs @@ -126,7 +126,7 @@ impl CheckedCoordinatorRecordBatchStream { let limiter = self.limiter.clone(); let future = async move { limiter - .check_data_out(batch_memory) + .check_coord_data_out(batch_memory) .await .map_err(CoordinatorError::from) }; diff --git a/coordinator/src/service.rs b/coordinator/src/service.rs index 6176aa0d6..6cae66005 100644 --- a/coordinator/src/service.rs +++ b/coordinator/src/service.rs @@ -302,7 +302,7 @@ impl CoordService { let checker = async move { meta.limiter(&tenant) - .check_query() + .check_coord_queries() .await .map_err(CoordinatorError::from) }; @@ -348,8 +348,8 @@ impl CoordService { let limiter = self.meta.limiter(tenant); let write_size = points.len(); - limiter.check_write().await?; - limiter.check_data_in(write_size).await?; + limiter.check_coord_writes().await?; + limiter.check_coord_data_in(write_size).await?; self.metrics.data_in(tenant, db).inc(write_size as u64); } diff --git a/meta/src/limiter/limiter_kind.rs b/meta/src/limiter/limiter_kind.rs index f5a5fe100..9c8068472 100644 --- a/meta/src/limiter/limiter_kind.rs +++ b/meta/src/limiter/limiter_kind.rs @@ -4,11 +4,12 @@ use serde::{Deserialize, Serialize}; #[derive(Hash, Eq, PartialEq, Debug, Clone, Copy, Serialize, Deserialize)] pub enum RequestLimiterKind { - DataIn, - DataOut, - Queries, - Writes, + CoordDataIn, + CoordDataOut, + CoordQueries, + CoordWrites, } + impl Display for RequestLimiterKind { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { write!(f, "{:?}", self) diff --git a/meta/src/limiter/local_request_limiter.rs b/meta/src/limiter/local_request_limiter.rs index e4757618d..9fc42bcfc 100644 --- a/meta/src/limiter/local_request_limiter.rs +++ b/meta/src/limiter/local_request_limiter.rs @@ -66,10 +66,10 @@ impl LocalRequestLimiter { match limiter_config { Some(config) => { let mut buckets = HashMap::new(); - insert_local_bucket(&mut buckets, DataIn, config.data_in.as_ref()); - insert_local_bucket(&mut buckets, DataOut, config.data_out.as_ref()); - insert_local_bucket(&mut buckets, Writes, config.writes.as_ref()); - insert_local_bucket(&mut buckets, Queries, config.queries.as_ref()); + insert_local_bucket(&mut buckets, CoordDataIn, config.coord_data_in.as_ref()); + insert_local_bucket(&mut buckets, CoordDataOut, config.coord_data_out.as_ref()); + insert_local_bucket(&mut buckets, CoordWrites, config.coord_writes.as_ref()); + insert_local_bucket(&mut buckets, CoordQueries, config.coord_queries.as_ref()); buckets } None => HashMap::new(), @@ -165,22 +165,22 @@ impl LocalRequestLimiter { #[async_trait] impl RequestLimiter for LocalRequestLimiter { - async fn check_data_in(&self, data_len: usize) -> MetaResult<()> { - self.check_bucket(RequestLimiterKind::DataIn, data_len) + async fn check_coord_data_in(&self, data_len: usize) -> MetaResult<()> { + self.check_bucket(RequestLimiterKind::CoordDataIn, data_len) .await } - async fn check_data_out(&self, data_len: usize) -> MetaResult<()> { - self.check_bucket(RequestLimiterKind::DataOut, data_len) + async fn check_coord_data_out(&self, data_len: usize) -> MetaResult<()> { + self.check_bucket(RequestLimiterKind::CoordDataOut, data_len) .await } - async fn check_query(&self) -> MetaResult<()> { - self.check_bucket(RequestLimiterKind::Queries, 1).await + async fn check_coord_queries(&self) -> MetaResult<()> { + self.check_bucket(RequestLimiterKind::CoordQueries, 1).await } - async fn check_write(&self) -> MetaResult<()> { - self.check_bucket(RequestLimiterKind::Writes, 1).await + async fn check_coord_writes(&self) -> MetaResult<()> { + self.check_bucket(RequestLimiterKind::CoordWrites, 1).await } } diff --git a/meta/src/limiter/mod.rs b/meta/src/limiter/mod.rs index 0ad385946..ace556a4f 100644 --- a/meta/src/limiter/mod.rs +++ b/meta/src/limiter/mod.rs @@ -42,8 +42,8 @@ pub type LimiterRef = Arc; /// #[async_trait] pub trait RequestLimiter: Send + Sync + Debug { - async fn check_data_in(&self, data_len: usize) -> MetaResult<()>; - async fn check_data_out(&self, data_len: usize) -> MetaResult<()>; - async fn check_query(&self) -> MetaResult<()>; - async fn check_write(&self) -> MetaResult<()>; + async fn check_coord_data_in(&self, data_len: usize) -> MetaResult<()>; + async fn check_coord_data_out(&self, data_len: usize) -> MetaResult<()>; + async fn check_coord_queries(&self) -> MetaResult<()>; + async fn check_coord_writes(&self) -> MetaResult<()>; } diff --git a/meta/src/limiter/none_limiter.rs b/meta/src/limiter/none_limiter.rs index 5aae5a65b..998c8c5f5 100644 --- a/meta/src/limiter/none_limiter.rs +++ b/meta/src/limiter/none_limiter.rs @@ -19,19 +19,19 @@ impl Debug for NoneLimiter { #[async_trait] impl RequestLimiter for NoneLimiter { - async fn check_data_in(&self, _data_len: usize) -> MetaResult<()> { + async fn check_coord_data_in(&self, _data_len: usize) -> MetaResult<()> { Ok(()) } - async fn check_data_out(&self, _data_len: usize) -> MetaResult<()> { + async fn check_coord_data_out(&self, _data_len: usize) -> MetaResult<()> { Ok(()) } - async fn check_query(&self) -> MetaResult<()> { + async fn check_coord_queries(&self) -> MetaResult<()> { Ok(()) } - async fn check_write(&self) -> MetaResult<()> { + async fn check_coord_writes(&self) -> MetaResult<()> { Ok(()) } } diff --git a/meta/src/limiter/remote_request_limiter.rs b/meta/src/limiter/remote_request_limiter.rs index ca8860153..a2b7547fb 100644 --- a/meta/src/limiter/remote_request_limiter.rs +++ b/meta/src/limiter/remote_request_limiter.rs @@ -19,10 +19,10 @@ impl RemoteRequestLimiter { Some(config) => { use RequestLimiterKind::*; let mut buckets = HashMap::new(); - insert_remote_bucket(&mut buckets, DataIn, config.data_in.as_ref()); - insert_remote_bucket(&mut buckets, DataOut, config.data_out.as_ref()); - insert_remote_bucket(&mut buckets, Queries, config.queries.as_ref()); - insert_remote_bucket(&mut buckets, Writes, config.writes.as_ref()); + insert_remote_bucket(&mut buckets, CoordDataIn, config.coord_data_in.as_ref()); + insert_remote_bucket(&mut buckets, CoordDataOut, config.coord_data_out.as_ref()); + insert_remote_bucket(&mut buckets, CoordQueries, config.coord_queries.as_ref()); + insert_remote_bucket(&mut buckets, CoordWrites, config.coord_writes.as_ref()); buckets } None => HashMap::new(), diff --git a/query_server/test/cases/sys_table/cluster_schema/tenants.result b/query_server/test/cases/sys_table/cluster_schema/tenants.result index 87a82a4a6..899a3bf22 100644 --- a/query_server/test/cases/sys_table/cluster_schema/tenants.result +++ b/query_server/test/cases/sys_table/cluster_schema/tenants.result @@ -103,7 +103,7 @@ test_ts_tenant1,"{""comment"":null,""limiter_config"":null}" 200 OK --- EXECUTE SQL: alter tenant test_ts_tenant1 set _limiter = '{"object_config":{"max_users_number":1,"max_databases":3,"max_shard_number":2,"max_replicate_number":2,"max_retention_time":30},"request_config":{"data_in":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"data_out":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"queries":null,"writes":null}}'; -- +-- EXECUTE SQL: alter tenant test_ts_tenant1 set _limiter = '{"object_config":{"max_users_number":1,"max_databases":3,"max_shard_number":2,"max_replicate_number":2,"max_retention_time":30},"request_config":{"coord_data_in":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"coord_data_out":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"coord_queries":null,"coord_writes":null}}'; -- 200 OK @@ -111,7 +111,7 @@ test_ts_tenant1,"{""comment"":null,""limiter_config"":null}" -- AFTER_SORT -- 200 OK tenant_name,tenant_options -test_ts_tenant1,"{""comment"":""hello world"",""limiter_config"":{""object_config"":{""max_users_number"":1,""max_databases"":3,""max_shard_number"":2,""max_replicate_number"":2,""max_retention_time"":30},""request_config"":{""data_in"":{""remote_bucket"":{""max"":100,""initial"":0,""refill"":100,""interval"":100},""local_bucket"":{""max"":100,""initial"":0}},""data_out"":{""remote_bucket"":{""max"":100,""initial"":0,""refill"":100,""interval"":100},""local_bucket"":{""max"":100,""initial"":0}},""queries"":null,""writes"":null}}}" +test_ts_tenant1,"{""comment"":""hello world"",""limiter_config"":{""object_config"":{""max_users_number"":1,""max_databases"":3,""max_shard_number"":2,""max_replicate_number"":2,""max_retention_time"":30},""request_config"":{""coord_data_in"":{""remote_bucket"":{""max"":100,""initial"":0,""refill"":100,""interval"":100},""local_bucket"":{""max"":100,""initial"":0}},""coord_data_out"":{""remote_bucket"":{""max"":100,""initial"":0,""refill"":100,""interval"":100},""local_bucket"":{""max"":100,""initial"":0}},""coord_queries"":null,""coord_writes"":null}}}" -- EXECUTE SQL: alter tenant test_ts_tenant1 unset comment; -- 200 OK diff --git a/query_server/test/cases/sys_table/cluster_schema/tenants.sql b/query_server/test/cases/sys_table/cluster_schema/tenants.sql index e22039a8b..b3eb0d51c 100644 --- a/query_server/test/cases/sys_table/cluster_schema/tenants.sql +++ b/query_server/test/cases/sys_table/cluster_schema/tenants.sql @@ -34,7 +34,7 @@ select * from cluster_schema.tenants where tenant_name in ('test_ts_tenant1'); drop tenant cnosdb; alter tenant test_ts_tenant1 set comment = 'hello world'; -alter tenant test_ts_tenant1 set _limiter = '{"object_config":{"max_users_number":1,"max_databases":3,"max_shard_number":2,"max_replicate_number":2,"max_retention_time":30},"request_config":{"data_in":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"data_out":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"queries":null,"writes":null}}'; +alter tenant test_ts_tenant1 set _limiter = '{"object_config":{"max_users_number":1,"max_databases":3,"max_shard_number":2,"max_replicate_number":2,"max_retention_time":30},"request_config":{"coord_data_in":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"coord_data_out":{"remote_bucket":{"max":100,"initial":0,"refill":100,"interval":100},"local_bucket":{"max":100,"initial":0}},"coord_queries":null,"coord_writes":null}}'; select * from cluster_schema.tenants where tenant_name in ('test_ts_tenant1');