fix(mito): normalize region dir in RegionOpener (#2475)

fix: normalize region dir in RegionOpener
This commit is contained in:
Yingwen
2023-09-23 18:06:00 +08:00
committed by GitHub
parent 32d1d68441
commit 73842f10e7
3 changed files with 5 additions and 10 deletions

View File

@@ -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<String, String>) -> Self {
self.options = value;

View File

@@ -58,12 +58,12 @@ impl<S: LogStore> RegionWorkerLoop<S> {
// 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?;

View File

@@ -57,11 +57,11 @@ impl<S: LogStore> RegionWorkerLoop<S> {
// 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?;