mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 13:22:57 +00:00
feat: update physical table schema on alter logical tables (#3585)
* feat: update physical table schema on alter * feat: alter logical table in sql path * feat: invalidate cache step1 * feat: invalidate cache step2 * feat: invalidate cache step3 * feat: invalidate cache step4 * fix: failed ut * fix: standalone cache invalidator * feat: log the count of already finished * feat: re-invalidate cache * chore: by comment * chore: Update src/common/meta/src/ddl/create_logical_tables.rs --------- Co-authored-by: Yingwen <realevenyag@gmail.com>
This commit is contained in:
@@ -20,7 +20,7 @@ use std::time::Duration;
|
||||
use api::v1::meta::Role;
|
||||
use api::v1::region::region_server::RegionServer;
|
||||
use arrow_flight::flight_service_server::FlightServiceServer;
|
||||
use catalog::kvbackend::{CachedMetaKvBackendBuilder, MetaKvBackend};
|
||||
use catalog::kvbackend::{CachedMetaKvBackendBuilder, KvBackendCatalogManager, MetaKvBackend};
|
||||
use client::client_manager::DatanodeClients;
|
||||
use client::Client;
|
||||
use common_base::Plugins;
|
||||
@@ -353,11 +353,12 @@ impl GreptimeDbClusterBuilder {
|
||||
let cached_meta_backend =
|
||||
Arc::new(CachedMetaKvBackendBuilder::new(meta_client.clone()).build());
|
||||
|
||||
let catalog_manager =
|
||||
KvBackendCatalogManager::new(cached_meta_backend.clone(), cached_meta_backend.clone());
|
||||
|
||||
let handlers_executor = HandlerGroupExecutor::new(vec![
|
||||
Arc::new(ParseMailboxMessageHandler),
|
||||
Arc::new(InvalidateTableCacheHandler::new(
|
||||
cached_meta_backend.clone(),
|
||||
)),
|
||||
Arc::new(InvalidateTableCacheHandler::new(catalog_manager.clone())),
|
||||
]);
|
||||
|
||||
let heartbeat_task = HeartbeatTask::new(
|
||||
@@ -366,13 +367,17 @@ impl GreptimeDbClusterBuilder {
|
||||
Arc::new(handlers_executor),
|
||||
);
|
||||
|
||||
let instance =
|
||||
FrontendBuilder::new(cached_meta_backend.clone(), datanode_clients, meta_client)
|
||||
.with_cache_invalidator(cached_meta_backend)
|
||||
.with_heartbeat_task(heartbeat_task)
|
||||
.try_build()
|
||||
.await
|
||||
.unwrap();
|
||||
let instance = FrontendBuilder::new(
|
||||
cached_meta_backend.clone(),
|
||||
catalog_manager.clone(),
|
||||
datanode_clients,
|
||||
meta_client,
|
||||
)
|
||||
.with_cache_invalidator(catalog_manager)
|
||||
.with_heartbeat_task(heartbeat_task)
|
||||
.try_build()
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
Arc::new(instance)
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
use catalog::kvbackend::KvBackendCatalogManager;
|
||||
use cmd::options::MixOptions;
|
||||
use common_base::Plugins;
|
||||
use common_catalog::consts::MIN_USER_TABLE_ID;
|
||||
@@ -124,6 +125,9 @@ impl GreptimeDbStandaloneBuilder {
|
||||
let table_metadata_manager = Arc::new(TableMetadataManager::new(kv_backend.clone()));
|
||||
table_metadata_manager.init().await.unwrap();
|
||||
|
||||
let catalog_manager =
|
||||
KvBackendCatalogManager::new(kv_backend.clone(), Arc::new(DummyCacheInvalidator));
|
||||
|
||||
let datanode_manager = Arc::new(StandaloneDatanodeManager(datanode.region_server()));
|
||||
|
||||
let table_id_sequence = Arc::new(
|
||||
@@ -154,12 +158,17 @@ impl GreptimeDbStandaloneBuilder {
|
||||
.unwrap(),
|
||||
);
|
||||
|
||||
let instance =
|
||||
FrontendBuilder::new(kv_backend.clone(), datanode_manager, ddl_task_executor)
|
||||
.with_plugin(plugins)
|
||||
.try_build()
|
||||
.await
|
||||
.unwrap();
|
||||
let instance = FrontendBuilder::new(
|
||||
kv_backend.clone(),
|
||||
catalog_manager.clone(),
|
||||
datanode_manager,
|
||||
ddl_task_executor,
|
||||
)
|
||||
.with_plugin(plugins)
|
||||
.with_cache_invalidator(catalog_manager)
|
||||
.try_build()
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
procedure_manager.start().await.unwrap();
|
||||
wal_options_allocator.start().await.unwrap();
|
||||
|
||||
Reference in New Issue
Block a user