From eee898353b9d6d3f3e50f1d95738f472b2877de0 Mon Sep 17 00:00:00 2001 From: lzxddz Date: Wed, 24 Sep 2025 18:49:14 +0800 Subject: [PATCH 1/2] Start datastore in DataStoreService --- storage/eloq/ha_eloq.cc | 45 +++++------------------------------------ 1 file changed, 5 insertions(+), 40 deletions(-) diff --git a/storage/eloq/ha_eloq.cc b/storage/eloq/ha_eloq.cc index b1040385960..71d8157e003 100644 --- a/storage/eloq/ha_eloq.cc +++ b/storage/eloq/ha_eloq.cc @@ -2724,51 +2724,17 @@ static int eloq_init_func(void *p) data_store_service_= std::make_unique( ds_config, dss_config_file_path, dss_data_path + "/DSMigrateLog", std::move(ds_factory)); - std::vector dss_shards= ds_config.GetShardsForThisNode(); - std::unordered_map> - dss_shards_map; - // setup rocksdb cloud data store - for (int shard_id : dss_shards) - { -#if defined(DATA_STORE_TYPE_ELOQDSS_ROCKSDB_CLOUD_S3) || \ - defined(DATA_STORE_TYPE_ELOQDSS_ROCKSDB_CLOUD_GCS) - // TODO(lzx):move setup datastore to data_store_service - auto ds= std::make_unique( - rocksdb_cloud_config, rocksdb_config, - (opt_bootstrap || is_single_node), enable_cache_replacement_, - shard_id, data_store_service_.get()); -#elif defined(DATA_STORE_TYPE_ELOQDSS_ROCKSDB) - auto ds= std::make_unique( - rocksdb_config, (opt_bootstrap || is_single_node), - enable_cache_replacement_, shard_id, data_store_service_.get()); -#elif defined(DATA_STORE_TYPE_ELOQDSS_ELOQSTORE) - auto ds= std::make_unique( - shard_id, data_store_service_.get()); -#endif - ds->Initialize(); - - // Start db if the shard status is not closed - if (ds_config.FetchDSShardStatus(shard_id) != - EloqDS::DSShardStatus::Closed) - { - bool ret= ds->StartDB(); - if (!ret) - { - sql_print_error("Failed to start db instance in data store service"); - DBUG_RETURN(eloq_init_abort()); - } - } - dss_shards_map[shard_id]= std::move(ds); - } - // setup local data store service - bool ret= data_store_service_->StartService(); + // setup local data store service, the data store service will start + // data store if needed. + bool ret= + data_store_service_->StartService((opt_bootstrap || is_single_node)); if (!ret) { sql_print_error("Failed to start data store service"); DBUG_RETURN(eloq_init_abort()); } - data_store_service_->ConnectDataStore(std::move(dss_shards_map)); + // setup data store service client storage_hd= std::make_unique( catalog_factory, ds_config, data_store_service_.get()); @@ -3304,7 +3270,6 @@ static int eloq_done_func(void *p) #if ELOQDS if (data_store_service_ != nullptr) { - data_store_service_->DisconnectDataStore(); data_store_service_= nullptr; } #endif From 10e5912d4bcad1e4d0fd4e4ddfe2c42bde5eabef Mon Sep 17 00:00:00 2001 From: lzxddz Date: Tue, 14 Oct 2025 15:22:52 +0800 Subject: [PATCH 2/2] update submodule --- storage/eloq/log_service | 2 +- storage/eloq/store_handler | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/storage/eloq/log_service b/storage/eloq/log_service index a085920ce6a..9caaf7cd9e7 160000 --- a/storage/eloq/log_service +++ b/storage/eloq/log_service @@ -1 +1 @@ -Subproject commit a085920ce6a71106c75703ff14c36033bae449b5 +Subproject commit 9caaf7cd9e78ee4a6e4eb6e6b35bff16f852e249 diff --git a/storage/eloq/store_handler b/storage/eloq/store_handler index af2bb936770..a3fdbbc866c 160000 --- a/storage/eloq/store_handler +++ b/storage/eloq/store_handler @@ -1 +1 @@ -Subproject commit af2bb9367707497b17b435fc3dbfd7611e13e0d3 +Subproject commit a3fdbbc866c98b4e70a02aac31a17f408d45d15a