diff --git a/Cargo.lock b/Cargo.lock index 9adb6bb506f..3d9eccf167f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4112,7 +4112,7 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "greptime-proto" version = "0.1.0" -source = "git+https://github.com/GreptimeTeam/greptime-proto.git?rev=917ead6274b4dccbaf33c59a7360646ba2f285a9#917ead6274b4dccbaf33c59a7360646ba2f285a9" +source = "git+https://github.com/GreptimeTeam/greptime-proto.git?rev=0f30b7fcbf950f0596f1159373947a21ff737216#0f30b7fcbf950f0596f1159373947a21ff737216" dependencies = [ "prost", "serde", diff --git a/Cargo.toml b/Cargo.toml index 93c190dad5b..b94e8d8b565 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -74,7 +74,7 @@ datafusion-substrait = { git = "https://github.com/waynexia/arrow-datafusion.git etcd-client = "0.11" futures = "0.3" futures-util = "0.3" -greptime-proto = { git = "https://github.com/GreptimeTeam/greptime-proto.git", rev = "917ead6274b4dccbaf33c59a7360646ba2f285a9" } +greptime-proto = { git = "https://github.com/GreptimeTeam/greptime-proto.git", rev = "0f30b7fcbf950f0596f1159373947a21ff737216" } itertools = "0.10" lazy_static = "1.4" parquet = "40.0" diff --git a/src/api/src/helper.rs b/src/api/src/helper.rs index 10ad7d5bb35..36fe6287879 100644 --- a/src/api/src/helper.rs +++ b/src/api/src/helper.rs @@ -257,6 +257,7 @@ fn ddl_request_type(request: &DdlRequest) -> &'static str { Some(Expr::DropTable(_)) => "ddl.drop_table", Some(Expr::FlushTable(_)) => "ddl.flush_table", None => "ddl.empty", + _ => unreachable!("https://github.com/GreptimeTeam/greptimedb/pull/1912"), } } diff --git a/src/catalog/src/lib.rs b/src/catalog/src/lib.rs index 81436d9657f..3331cb9e1e0 100644 --- a/src/catalog/src/lib.rs +++ b/src/catalog/src/lib.rs @@ -21,7 +21,7 @@ use std::collections::HashMap; use std::fmt::{Debug, Formatter}; use std::sync::Arc; -use api::v1::meta::{RegionStat, TableName}; +use api::v1::meta::{RegionStat, TableIdent, TableName}; use common_telemetry::{info, warn}; use snafu::ResultExt; use table::engine::{EngineContext, TableEngineRef}; @@ -226,19 +226,25 @@ pub async fn datanode_stat(catalog_manager: &CatalogManagerRef) -> (u64, Vec { let stats = stats.into_iter().map(|stat| RegionStat { region_id: stat.region_id, - table_name: Some(TableName { - catalog_name: catalog_name.clone(), - schema_name: schema_name.clone(), - table_name: table_name.clone(), + table_ident: Some(TableIdent { + table_id, + table_name: Some(TableName { + catalog_name: catalog_name.clone(), + schema_name: schema_name.clone(), + table_name: table_name.clone(), + }), + engine: engine.clone(), }), approximate_bytes: stat.disk_usage_bytes as i64, attrs: HashMap::from([("engine_name".to_owned(), engine.clone())]), diff --git a/src/datanode/src/instance/grpc.rs b/src/datanode/src/instance/grpc.rs index c94754b93b0..209b42060eb 100644 --- a/src/datanode/src/instance/grpc.rs +++ b/src/datanode/src/instance/grpc.rs @@ -15,7 +15,7 @@ use std::any::Any; use std::sync::Arc; -use api::v1::ddl_request::Expr as DdlExpr; +use api::v1::ddl_request::{Expr as DdlExpr, Expr}; use api::v1::greptime_request::Request as GrpcRequest; use api::v1::query_request::Query; use api::v1::{CreateDatabaseExpr, DdlRequest, DeleteRequest, InsertRequests}; @@ -198,6 +198,9 @@ impl Instance { DdlExpr::CreateDatabase(expr) => self.handle_create_database(expr, query_ctx).await, DdlExpr::DropTable(expr) => self.handle_drop_table(expr).await, DdlExpr::FlushTable(expr) => self.handle_flush_table(expr).await, + Expr::CompactTable(_) => { + unreachable!("https://github.com/GreptimeTeam/greptimedb/pull/1912") + } } } } diff --git a/src/frontend/src/instance/distributed.rs b/src/frontend/src/instance/distributed.rs index d190514eaa5..b6c728c7a5a 100644 --- a/src/frontend/src/instance/distributed.rs +++ b/src/frontend/src/instance/distributed.rs @@ -19,7 +19,7 @@ use std::sync::Arc; use std::time::Duration; use api::helper::ColumnDataTypeWrapper; -use api::v1::ddl_request::Expr as DdlExpr; +use api::v1::ddl_request::{Expr as DdlExpr, Expr}; use api::v1::greptime_request::Request; use api::v1::{ column_def, AlterExpr, CreateDatabaseExpr, CreateTableExpr, DeleteRequest, DropTableExpr, @@ -597,6 +597,9 @@ impl GrpcQueryHandler for DistInstance { TableName::new(&expr.catalog_name, &expr.schema_name, &expr.table_name); self.flush_table(table_name, expr.region_number).await } + Expr::CompactTable(_) => { + unreachable!("https://github.com/GreptimeTeam/greptimedb/pull/1912") + } } } } diff --git a/src/meta-srv/src/cluster.rs b/src/meta-srv/src/cluster.rs index 1cc7d80cdf6..68e47117ce1 100644 --- a/src/meta-srv/src/cluster.rs +++ b/src/meta-srv/src/cluster.rs @@ -260,7 +260,6 @@ mod tests { cluster_id: 0, id: 100, addr: "127.0.0.1:3001".to_string(), - is_leader: true, ..Default::default() }; let stat_val = StatValue { stats: vec![stat] }.try_into().unwrap(); @@ -280,7 +279,6 @@ mod tests { assert_eq!(0, stat.cluster_id); assert_eq!(100, stat.id); assert_eq!("127.0.0.1:3001", stat.addr); - assert!(stat.is_leader); } #[test] diff --git a/src/meta-srv/src/handler/node_stat.rs b/src/meta-srv/src/handler/node_stat.rs index f0f17eefa96..555ac4afd45 100644 --- a/src/meta-srv/src/handler/node_stat.rs +++ b/src/meta-srv/src/handler/node_stat.rs @@ -24,8 +24,6 @@ pub struct Stat { pub cluster_id: u64, pub id: u64, pub addr: String, - /// Leader node - pub is_leader: bool, /// The read capacity units during this period pub rcus: i64, /// The write capacity units during this period @@ -34,13 +32,6 @@ pub struct Stat { pub table_num: i64, /// How many regions on this node pub region_num: Option, - pub cpu_usage: f64, - pub load: f64, - /// Read disk IO on this node - pub read_io_rate: f64, - /// Write disk IO on this node - pub write_io_rate: f64, - /// Region stats on this node pub region_stats: Vec, // The node epoch is used to check whether the node has restarted or redeployed. pub node_epoch: u64, @@ -78,7 +69,6 @@ impl TryFrom for Stat { let HeartbeatRequest { header, peer, - is_leader, node_stat, region_stats, node_epoch, @@ -92,20 +82,16 @@ impl TryFrom for Stat { } else { None }; + Ok(Self { timestamp_millis: time_util::current_time_millis(), cluster_id: header.cluster_id, id: peer.id, addr: peer.addr, - is_leader, rcus: node_stat.rcus, wcus: node_stat.wcus, table_num: node_stat.table_num, region_num, - cpu_usage: node_stat.cpu_usage, - load: node_stat.load, - read_io_rate: node_stat.read_io_rate, - write_io_rate: node_stat.write_io_rate, region_stats: region_stats.into_iter().map(RegionStat::from).collect(), node_epoch, }) @@ -117,7 +103,10 @@ impl TryFrom for Stat { impl From for RegionStat { fn from(value: api::v1::meta::RegionStat) -> Self { - let table = value.table_name.as_ref(); + let table = value + .table_ident + .as_ref() + .and_then(|t| t.table_name.as_ref()); Self { id: value.region_id, catalog: table.map_or("", |t| &t.catalog_name).to_string(), diff --git a/src/meta-srv/src/keys.rs b/src/meta-srv/src/keys.rs index 9ee1100c650..1b5f13d0d68 100644 --- a/src/meta-srv/src/keys.rs +++ b/src/meta-srv/src/keys.rs @@ -278,7 +278,6 @@ mod tests { let stat = Stat { cluster_id: 0, id: 101, - is_leader: false, region_num: Some(100), ..Default::default() }; @@ -294,7 +293,6 @@ mod tests { let stat = stats.get(0).unwrap(); assert_eq!(0, stat.cluster_id); assert_eq!(101, stat.id); - assert!(!stat.is_leader); assert_eq!(Some(100), stat.region_num); }