From 73842f10e7efc15f66ed3b14545ffdec6ad57f17 Mon Sep 17 00:00:00 2001 From: Yingwen Date: Sat, 23 Sep 2023 18:06:00 +0800 Subject: [PATCH] fix(mito): normalize region dir in RegionOpener (#2475) fix: normalize region dir in RegionOpener --- src/mito2/src/region/opener.rs | 11 +++-------- src/mito2/src/worker/handle_create.rs | 2 +- src/mito2/src/worker/handle_open.rs | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/mito2/src/region/opener.rs b/src/mito2/src/region/opener.rs index 211cecb750..3683d6fc2f 100644 --- a/src/mito2/src/region/opener.rs +++ b/src/mito2/src/region/opener.rs @@ -21,7 +21,7 @@ use std::sync::Arc; use common_telemetry::{debug, error, info, warn}; use common_time::util::current_time_millis; use futures::StreamExt; -use object_store::util::join_dir; +use object_store::util::{join_dir, normalize_dir}; use object_store::ObjectStore; use snafu::{ensure, OptionExt}; use store_api::logstore::LogStore; @@ -57,6 +57,7 @@ impl RegionOpener { /// Returns a new opener. pub(crate) fn new( region_id: RegionId, + region_dir: &str, memtable_builder: MemtableBuilderRef, object_store: ObjectStore, scheduler: SchedulerRef, @@ -66,7 +67,7 @@ impl RegionOpener { metadata: None, memtable_builder, object_store, - region_dir: String::new(), + region_dir: normalize_dir(region_dir), scheduler, options: HashMap::new(), } @@ -78,12 +79,6 @@ impl RegionOpener { self } - /// Sets the region dir. - pub(crate) fn region_dir(mut self, value: &str) -> Self { - self.region_dir = value.to_string(); - self - } - /// Sets options for the region. pub(crate) fn options(mut self, value: HashMap) -> Self { self.options = value; diff --git a/src/mito2/src/worker/handle_create.rs b/src/mito2/src/worker/handle_create.rs index 38154022a7..8480829568 100644 --- a/src/mito2/src/worker/handle_create.rs +++ b/src/mito2/src/worker/handle_create.rs @@ -58,12 +58,12 @@ impl RegionWorkerLoop { // Create a MitoRegion from the RegionMetadata. let region = RegionOpener::new( region_id, + &request.region_dir, self.memtable_builder.clone(), self.object_store.clone(), self.scheduler.clone(), ) .metadata(metadata) - .region_dir(&request.region_dir) .options(request.options) .create_or_open(&self.config, &self.wal) .await?; diff --git a/src/mito2/src/worker/handle_open.rs b/src/mito2/src/worker/handle_open.rs index e6de10b669..ab6967c0d1 100644 --- a/src/mito2/src/worker/handle_open.rs +++ b/src/mito2/src/worker/handle_open.rs @@ -57,11 +57,11 @@ impl RegionWorkerLoop { // Open region from specific region dir. let region = RegionOpener::new( region_id, + &request.region_dir, self.memtable_builder.clone(), self.object_store.clone(), self.scheduler.clone(), ) - .region_dir(&request.region_dir) .options(request.options) .open(&self.config, &self.wal) .await?;