mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-08 22:32:55 +00:00
fix(mito): normalize region dir in RegionOpener (#2475)
fix: normalize region dir in RegionOpener
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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?;
|
||||
|
||||
@@ -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?;
|
||||
|
||||
Reference in New Issue
Block a user