mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-23 16:30:39 +00:00
refactor: explicitly accept path type as param (#6583)
Signed-off-by: Zhenchi <zhongzc_arch@outlook.com>
This commit is contained in:
@@ -524,6 +524,7 @@ impl ScanRegion {
|
||||
|
||||
InvertedIndexApplierBuilder::new(
|
||||
self.access_layer.table_dir().to_string(),
|
||||
self.access_layer.path_type(),
|
||||
self.access_layer.object_store().clone(),
|
||||
self.version.metadata.as_ref(),
|
||||
self.version.metadata.inverted_indexed_column_ids(
|
||||
@@ -536,7 +537,6 @@ impl ScanRegion {
|
||||
),
|
||||
self.access_layer.puffin_manager_factory().clone(),
|
||||
)
|
||||
.with_path_type(self.access_layer.path_type())
|
||||
.with_file_cache(file_cache)
|
||||
.with_inverted_index_cache(inverted_index_cache)
|
||||
.with_puffin_metadata_cache(puffin_metadata_cache)
|
||||
@@ -559,11 +559,11 @@ impl ScanRegion {
|
||||
|
||||
BloomFilterIndexApplierBuilder::new(
|
||||
self.access_layer.table_dir().to_string(),
|
||||
self.access_layer.path_type(),
|
||||
self.access_layer.object_store().clone(),
|
||||
self.version.metadata.as_ref(),
|
||||
self.access_layer.puffin_manager_factory().clone(),
|
||||
)
|
||||
.with_path_type(self.access_layer.path_type())
|
||||
.with_file_cache(file_cache)
|
||||
.with_bloom_filter_index_cache(bloom_filter_index_cache)
|
||||
.with_puffin_metadata_cache(puffin_metadata_cache)
|
||||
@@ -585,11 +585,11 @@ impl ScanRegion {
|
||||
let bloom_filter_index_cache = self.cache_strategy.bloom_filter_index_cache().cloned();
|
||||
FulltextIndexApplierBuilder::new(
|
||||
self.access_layer.table_dir().to_string(),
|
||||
self.access_layer.path_type(),
|
||||
self.access_layer.object_store().clone(),
|
||||
self.access_layer.puffin_manager_factory().clone(),
|
||||
self.version.metadata.as_ref(),
|
||||
)
|
||||
.with_path_type(self.access_layer.path_type())
|
||||
.with_file_cache(file_cache)
|
||||
.with_puffin_metadata_cache(puffin_metadata_cache)
|
||||
.with_bloom_filter_cache(bloom_filter_index_cache)
|
||||
|
||||
@@ -93,6 +93,7 @@ impl RegionOpener {
|
||||
pub(crate) fn new(
|
||||
region_id: RegionId,
|
||||
table_dir: &str,
|
||||
path_type: PathType,
|
||||
memtable_builder_provider: MemtableBuilderProvider,
|
||||
object_store_manager: ObjectStoreManagerRef,
|
||||
purge_scheduler: SchedulerRef,
|
||||
@@ -106,7 +107,7 @@ impl RegionOpener {
|
||||
memtable_builder_provider,
|
||||
object_store_manager,
|
||||
table_dir: normalize_dir(table_dir),
|
||||
path_type: PathType::Bare, // Default to Bare
|
||||
path_type,
|
||||
purge_scheduler,
|
||||
options: None,
|
||||
cache_manager: None,
|
||||
@@ -125,12 +126,6 @@ impl RegionOpener {
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the path type for the region.
|
||||
pub(crate) fn path_type(mut self, path_type: PathType) -> Self {
|
||||
self.path_type = path_type;
|
||||
self
|
||||
}
|
||||
|
||||
/// Computes the region directory from table_dir and region_id.
|
||||
fn region_dir(&self) -> String {
|
||||
region_dir_from_table_dir(&self.table_dir, self.region_id, self.path_type)
|
||||
|
||||
@@ -50,8 +50,8 @@ pub(crate) type BloomFilterIndexApplierRef = Arc<BloomFilterIndexApplier>;
|
||||
|
||||
/// `BloomFilterIndexApplier` applies bloom filter predicates to the SST file.
|
||||
pub struct BloomFilterIndexApplier {
|
||||
/// Directory of the region.
|
||||
region_dir: String,
|
||||
/// Directory of the table.
|
||||
table_dir: String,
|
||||
|
||||
/// Path type for generating file paths.
|
||||
path_type: PathType,
|
||||
@@ -84,7 +84,7 @@ impl BloomFilterIndexApplier {
|
||||
///
|
||||
/// For each column, the value will be retained only if it contains __all__ predicates.
|
||||
pub fn new(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
object_store: ObjectStore,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
@@ -92,7 +92,7 @@ impl BloomFilterIndexApplier {
|
||||
) -> Self {
|
||||
let predicates = Arc::new(predicates);
|
||||
Self {
|
||||
region_dir,
|
||||
table_dir,
|
||||
path_type,
|
||||
object_store,
|
||||
file_cache: None,
|
||||
@@ -293,7 +293,7 @@ impl BloomFilterIndexApplier {
|
||||
.puffin_manager_factory
|
||||
.build(
|
||||
self.object_store.clone(),
|
||||
RegionFilePathFactory::new(self.region_dir.clone(), self.path_type),
|
||||
RegionFilePathFactory::new(self.table_dir.clone(), self.path_type),
|
||||
)
|
||||
.with_puffin_metadata_cache(self.puffin_metadata_cache.clone());
|
||||
|
||||
@@ -363,7 +363,7 @@ mod tests {
|
||||
|
||||
#[allow(clippy::type_complexity)]
|
||||
fn tester(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
object_store: ObjectStore,
|
||||
metadata: &RegionMetadata,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
@@ -371,15 +371,16 @@ mod tests {
|
||||
) -> impl Fn(&[Expr], Vec<(usize, bool)>) -> BoxFuture<'static, Vec<(usize, Vec<Range<usize>>)>>
|
||||
+ use<'_> {
|
||||
move |exprs, row_groups| {
|
||||
let region_dir = region_dir.clone();
|
||||
let object_store = object_store.clone();
|
||||
let table_dir = table_dir.clone();
|
||||
let object_store: ObjectStore = object_store.clone();
|
||||
let metadata = metadata.clone();
|
||||
let puffin_manager_factory = puffin_manager_factory.clone();
|
||||
let exprs = exprs.to_vec();
|
||||
|
||||
Box::pin(async move {
|
||||
let builder = BloomFilterIndexApplierBuilder::new(
|
||||
region_dir,
|
||||
table_dir,
|
||||
PathType::Bare,
|
||||
object_store,
|
||||
&metadata,
|
||||
puffin_manager_factory,
|
||||
@@ -423,7 +424,7 @@ mod tests {
|
||||
let intm_mgr = new_intm_mgr(d.path().to_string_lossy()).await;
|
||||
let memory_usage_threshold = Some(1024);
|
||||
let file_id = RegionFileId::new(region_metadata.region_id, FileId::random());
|
||||
let region_dir = "region_dir".to_string();
|
||||
let table_dir = "table_dir".to_string();
|
||||
|
||||
let mut indexer = BloomFilterIndexer::new(
|
||||
file_id.file_id(),
|
||||
@@ -442,7 +443,7 @@ mod tests {
|
||||
|
||||
let puffin_manager = factory.build(
|
||||
object_store.clone(),
|
||||
RegionFilePathFactory::new(region_dir.clone(), PathType::Bare),
|
||||
RegionFilePathFactory::new(table_dir.clone(), PathType::Bare),
|
||||
);
|
||||
|
||||
let mut puffin_writer = puffin_manager.writer(&file_id).await.unwrap();
|
||||
@@ -450,7 +451,7 @@ mod tests {
|
||||
puffin_writer.finish().await.unwrap();
|
||||
|
||||
let tester = tester(
|
||||
region_dir.clone(),
|
||||
table_dir.clone(),
|
||||
object_store.clone(),
|
||||
®ion_metadata,
|
||||
factory.clone(),
|
||||
|
||||
@@ -38,7 +38,7 @@ use crate::sst::index::bloom_filter::applier::BloomFilterIndexApplier;
|
||||
use crate::sst::index::puffin_manager::PuffinManagerFactory;
|
||||
|
||||
pub struct BloomFilterIndexApplierBuilder<'a> {
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
object_store: ObjectStore,
|
||||
metadata: &'a RegionMetadata,
|
||||
@@ -51,14 +51,15 @@ pub struct BloomFilterIndexApplierBuilder<'a> {
|
||||
|
||||
impl<'a> BloomFilterIndexApplierBuilder<'a> {
|
||||
pub fn new(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
object_store: ObjectStore,
|
||||
metadata: &'a RegionMetadata,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
) -> Self {
|
||||
Self {
|
||||
region_dir,
|
||||
path_type: PathType::Bare, // Default to Bare
|
||||
table_dir,
|
||||
path_type,
|
||||
object_store,
|
||||
metadata,
|
||||
puffin_manager_factory,
|
||||
@@ -69,11 +70,6 @@ impl<'a> BloomFilterIndexApplierBuilder<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn with_path_type(mut self, path_type: PathType) -> Self {
|
||||
self.path_type = path_type;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_file_cache(mut self, file_cache: Option<FileCacheRef>) -> Self {
|
||||
self.file_cache = file_cache;
|
||||
self
|
||||
@@ -106,7 +102,7 @@ impl<'a> BloomFilterIndexApplierBuilder<'a> {
|
||||
}
|
||||
|
||||
let applier = BloomFilterIndexApplier::new(
|
||||
self.region_dir,
|
||||
self.table_dir,
|
||||
self.path_type,
|
||||
self.object_store,
|
||||
self.puffin_manager_factory,
|
||||
@@ -399,6 +395,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let builder = BloomFilterIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
factory,
|
||||
@@ -435,6 +432,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let builder = BloomFilterIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
factory,
|
||||
@@ -462,6 +460,7 @@ mod tests {
|
||||
let builder = || {
|
||||
BloomFilterIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
factory.clone(),
|
||||
@@ -521,6 +520,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let builder = BloomFilterIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
factory,
|
||||
@@ -553,6 +553,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let builder = BloomFilterIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
factory,
|
||||
@@ -590,6 +591,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let builder = BloomFilterIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
factory,
|
||||
@@ -625,6 +627,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let builder = BloomFilterIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
factory,
|
||||
|
||||
@@ -72,14 +72,14 @@ pub type FulltextIndexApplierRef = Arc<FulltextIndexApplier>;
|
||||
impl FulltextIndexApplier {
|
||||
/// Creates a new `FulltextIndexApplier`.
|
||||
pub fn new(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
store: ObjectStore,
|
||||
requests: BTreeMap<ColumnId, FulltextRequest>,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
) -> Self {
|
||||
let requests = Arc::new(requests);
|
||||
let index_source = IndexSource::new(region_dir, path_type, puffin_manager_factory, store);
|
||||
let index_source = IndexSource::new(table_dir, path_type, puffin_manager_factory, store);
|
||||
|
||||
Self {
|
||||
predicate_key: PredicateKey::new_fulltext(requests.clone()),
|
||||
@@ -425,7 +425,7 @@ impl FulltextIndexApplier {
|
||||
|
||||
/// The source of the index.
|
||||
struct IndexSource {
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
|
||||
/// Path type for generating file paths.
|
||||
path_type: PathType,
|
||||
@@ -445,13 +445,13 @@ struct IndexSource {
|
||||
|
||||
impl IndexSource {
|
||||
fn new(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
remote_store: ObjectStore,
|
||||
) -> Self {
|
||||
Self {
|
||||
region_dir,
|
||||
table_dir,
|
||||
path_type,
|
||||
puffin_manager_factory,
|
||||
remote_store,
|
||||
@@ -581,7 +581,7 @@ impl IndexSource {
|
||||
.puffin_manager_factory
|
||||
.build(
|
||||
self.remote_store.clone(),
|
||||
RegionFilePathFactory::new(self.region_dir.clone(), self.path_type),
|
||||
RegionFilePathFactory::new(self.table_dir.clone(), self.path_type),
|
||||
)
|
||||
.with_puffin_metadata_cache(self.puffin_metadata_cache.clone());
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ pub struct FulltextTerm {
|
||||
|
||||
/// `FulltextIndexApplierBuilder` is a builder for `FulltextIndexApplier`.
|
||||
pub struct FulltextIndexApplierBuilder<'a> {
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
store: ObjectStore,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
@@ -94,14 +94,15 @@ pub struct FulltextIndexApplierBuilder<'a> {
|
||||
impl<'a> FulltextIndexApplierBuilder<'a> {
|
||||
/// Creates a new `FulltextIndexApplierBuilder`.
|
||||
pub fn new(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
store: ObjectStore,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
metadata: &'a RegionMetadata,
|
||||
) -> Self {
|
||||
Self {
|
||||
region_dir,
|
||||
path_type: PathType::Bare, // Default to Bare
|
||||
table_dir,
|
||||
path_type,
|
||||
store,
|
||||
puffin_manager_factory,
|
||||
metadata,
|
||||
@@ -111,12 +112,6 @@ impl<'a> FulltextIndexApplierBuilder<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Sets the path type to be used by the `FulltextIndexApplier`.
|
||||
pub fn with_path_type(mut self, path_type: PathType) -> Self {
|
||||
self.path_type = path_type;
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the file cache to be used by the `FulltextIndexApplier`.
|
||||
pub fn with_file_cache(mut self, file_cache: Option<FileCacheRef>) -> Self {
|
||||
self.file_cache = file_cache;
|
||||
@@ -155,7 +150,7 @@ impl<'a> FulltextIndexApplierBuilder<'a> {
|
||||
|
||||
Ok(has_requests.then(|| {
|
||||
FulltextIndexApplier::new(
|
||||
self.region_dir,
|
||||
self.table_dir,
|
||||
self.path_type,
|
||||
self.store,
|
||||
requests,
|
||||
|
||||
@@ -542,7 +542,7 @@ mod tests {
|
||||
Option<BitVec>,
|
||||
) -> BoxFuture<'static, Option<BTreeSet<RowId>>> {
|
||||
let (d, factory) = PuffinManagerFactory::new_for_test_async(prefix).await;
|
||||
let region_dir = "region0".to_string();
|
||||
let table_dir = "table0".to_string();
|
||||
let sst_file_id = FileId::random();
|
||||
let object_store = mock_object_store();
|
||||
let region_metadata = mock_region_metadata(backend.clone());
|
||||
@@ -565,7 +565,7 @@ mod tests {
|
||||
|
||||
let puffin_manager = factory.build(
|
||||
object_store.clone(),
|
||||
RegionFilePathFactory::new(region_dir.clone(), PathType::Bare),
|
||||
RegionFilePathFactory::new(table_dir.clone(), PathType::Bare),
|
||||
);
|
||||
let region_file_id = RegionFileId::new(region_metadata.region_id, sst_file_id);
|
||||
let mut writer = puffin_manager.writer(®ion_file_id).await.unwrap();
|
||||
@@ -576,7 +576,7 @@ mod tests {
|
||||
terms_requests: Vec<(ColumnId, Vec<(bool, &str)>)>,
|
||||
coarse_mask: Option<BitVec>| {
|
||||
let _d = &d;
|
||||
let region_dir = region_dir.clone();
|
||||
let table_dir = table_dir.clone();
|
||||
let object_store = object_store.clone();
|
||||
let factory = factory.clone();
|
||||
|
||||
@@ -609,7 +609,7 @@ mod tests {
|
||||
}
|
||||
|
||||
let applier = FulltextIndexApplier::new(
|
||||
region_dir,
|
||||
table_dir,
|
||||
PathType::Bare,
|
||||
object_store,
|
||||
requests,
|
||||
|
||||
@@ -47,8 +47,8 @@ use crate::sst::index::TYPE_INVERTED_INDEX;
|
||||
/// `InvertedIndexApplier` is responsible for applying predicates to the provided SST files
|
||||
/// and returning the relevant row group ids for further scan.
|
||||
pub(crate) struct InvertedIndexApplier {
|
||||
/// The root directory of the region.
|
||||
region_dir: String,
|
||||
/// The root directory of the table.
|
||||
table_dir: String,
|
||||
|
||||
/// Path type for generating file paths.
|
||||
path_type: PathType,
|
||||
@@ -81,7 +81,7 @@ pub(crate) type InvertedIndexApplierRef = Arc<InvertedIndexApplier>;
|
||||
impl InvertedIndexApplier {
|
||||
/// Creates a new `InvertedIndexApplier`.
|
||||
pub fn new(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
store: ObjectStore,
|
||||
index_applier: Box<dyn IndexApplier>,
|
||||
@@ -91,7 +91,7 @@ impl InvertedIndexApplier {
|
||||
INDEX_APPLY_MEMORY_USAGE.add(index_applier.memory_usage() as i64);
|
||||
|
||||
Self {
|
||||
region_dir,
|
||||
table_dir,
|
||||
path_type,
|
||||
store,
|
||||
file_cache: None,
|
||||
@@ -215,7 +215,7 @@ impl InvertedIndexApplier {
|
||||
.puffin_manager_factory
|
||||
.build(
|
||||
self.store.clone(),
|
||||
RegionFilePathFactory::new(self.region_dir.clone(), self.path_type),
|
||||
RegionFilePathFactory::new(self.table_dir.clone(), self.path_type),
|
||||
)
|
||||
.with_puffin_metadata_cache(self.puffin_metadata_cache.clone());
|
||||
|
||||
@@ -261,11 +261,11 @@ mod tests {
|
||||
PuffinManagerFactory::new_for_test_async("test_index_applier_apply_basic_").await;
|
||||
let object_store = ObjectStore::new(Memory::default()).unwrap().finish();
|
||||
let file_id = RegionFileId::new(0.into(), FileId::random());
|
||||
let region_dir = "region_dir".to_string();
|
||||
let table_dir = "table_dir".to_string();
|
||||
|
||||
let puffin_manager = puffin_manager_factory.build(
|
||||
object_store.clone(),
|
||||
RegionFilePathFactory::new(region_dir.clone(), PathType::Bare),
|
||||
RegionFilePathFactory::new(table_dir.clone(), PathType::Bare),
|
||||
);
|
||||
let mut writer = puffin_manager.writer(&file_id).await.unwrap();
|
||||
writer
|
||||
@@ -290,7 +290,7 @@ mod tests {
|
||||
});
|
||||
|
||||
let sst_index_applier = InvertedIndexApplier::new(
|
||||
region_dir.clone(),
|
||||
table_dir.clone(),
|
||||
PathType::Bare,
|
||||
object_store,
|
||||
Box::new(mock_index_applier),
|
||||
@@ -315,11 +315,11 @@ mod tests {
|
||||
.await;
|
||||
let object_store = ObjectStore::new(Memory::default()).unwrap().finish();
|
||||
let file_id = RegionFileId::new(0.into(), FileId::random());
|
||||
let region_dir = "region_dir".to_string();
|
||||
let table_dir = "table_dir".to_string();
|
||||
|
||||
let puffin_manager = puffin_manager_factory.build(
|
||||
object_store.clone(),
|
||||
RegionFilePathFactory::new(region_dir.clone(), PathType::Bare),
|
||||
RegionFilePathFactory::new(table_dir.clone(), PathType::Bare),
|
||||
);
|
||||
let mut writer = puffin_manager.writer(&file_id).await.unwrap();
|
||||
writer
|
||||
@@ -338,7 +338,7 @@ mod tests {
|
||||
mock_index_applier.expect_apply().never();
|
||||
|
||||
let sst_index_applier = InvertedIndexApplier::new(
|
||||
region_dir.clone(),
|
||||
table_dir.clone(),
|
||||
PathType::Bare,
|
||||
object_store,
|
||||
Box::new(mock_index_applier),
|
||||
|
||||
@@ -46,8 +46,8 @@ use crate::sst::index::puffin_manager::PuffinManagerFactory;
|
||||
|
||||
/// Constructs an [`InvertedIndexApplier`] which applies predicates to SST files during scan.
|
||||
pub(crate) struct InvertedIndexApplierBuilder<'a> {
|
||||
/// Directory of the region, required argument for constructing [`InvertedIndexApplier`].
|
||||
region_dir: String,
|
||||
/// Directory of the table, required argument for constructing [`InvertedIndexApplier`].
|
||||
table_dir: String,
|
||||
|
||||
/// Path type for generating file paths.
|
||||
path_type: PathType,
|
||||
@@ -80,15 +80,16 @@ pub(crate) struct InvertedIndexApplierBuilder<'a> {
|
||||
impl<'a> InvertedIndexApplierBuilder<'a> {
|
||||
/// Creates a new [`InvertedIndexApplierBuilder`].
|
||||
pub fn new(
|
||||
region_dir: String,
|
||||
table_dir: String,
|
||||
path_type: PathType,
|
||||
object_store: ObjectStore,
|
||||
metadata: &'a RegionMetadata,
|
||||
indexed_column_ids: HashSet<ColumnId>,
|
||||
puffin_manager_factory: PuffinManagerFactory,
|
||||
) -> Self {
|
||||
Self {
|
||||
region_dir,
|
||||
path_type: PathType::Bare, // Default to Bare
|
||||
table_dir,
|
||||
path_type,
|
||||
object_store,
|
||||
metadata,
|
||||
indexed_column_ids,
|
||||
@@ -100,12 +101,6 @@ impl<'a> InvertedIndexApplierBuilder<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Sets the path type.
|
||||
pub fn with_path_type(mut self, path_type: PathType) -> Self {
|
||||
self.path_type = path_type;
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the file cache.
|
||||
pub fn with_file_cache(mut self, file_cache: Option<FileCacheRef>) -> Self {
|
||||
self.file_cache = file_cache;
|
||||
@@ -150,7 +145,7 @@ impl<'a> InvertedIndexApplierBuilder<'a> {
|
||||
|
||||
Ok(Some(
|
||||
InvertedIndexApplier::new(
|
||||
self.region_dir,
|
||||
self.table_dir,
|
||||
self.path_type,
|
||||
self.object_store,
|
||||
Box::new(applier.context(BuildIndexApplierSnafu)?),
|
||||
@@ -354,6 +349,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
|
||||
@@ -60,6 +60,8 @@ impl InvertedIndexApplierBuilder<'_> {
|
||||
mod tests {
|
||||
use std::collections::HashSet;
|
||||
|
||||
use store_api::region_request::PathType;
|
||||
|
||||
use super::*;
|
||||
use crate::error::Error;
|
||||
use crate::sst::index::inverted_index::applier::builder::tests::{
|
||||
@@ -74,6 +76,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -115,6 +118,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -139,6 +143,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -180,6 +185,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -205,6 +211,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
|
||||
@@ -132,6 +132,8 @@ mod tests {
|
||||
|
||||
use std::collections::HashSet;
|
||||
|
||||
use store_api::region_request::PathType;
|
||||
|
||||
use super::*;
|
||||
use crate::error::Error;
|
||||
use crate::sst::index::inverted_index::applier::builder::tests::{
|
||||
@@ -230,6 +232,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -257,6 +260,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -275,6 +279,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -308,6 +313,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
|
||||
@@ -124,6 +124,8 @@ impl InvertedIndexApplierBuilder<'_> {
|
||||
mod tests {
|
||||
use std::collections::HashSet;
|
||||
|
||||
use store_api::region_request::PathType;
|
||||
|
||||
use super::*;
|
||||
use crate::error::Error;
|
||||
use crate::sst::index::inverted_index::applier::builder::tests::{
|
||||
@@ -138,6 +140,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -174,6 +177,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -201,6 +205,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -219,6 +224,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -237,6 +243,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -294,6 +301,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -330,6 +338,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
|
||||
@@ -55,6 +55,8 @@ impl InvertedIndexApplierBuilder<'_> {
|
||||
mod tests {
|
||||
use std::collections::HashSet;
|
||||
|
||||
use store_api::region_request::PathType;
|
||||
|
||||
use super::*;
|
||||
use crate::error::Error;
|
||||
use crate::sst::index::inverted_index::applier::builder::tests::{
|
||||
@@ -69,6 +71,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -100,6 +103,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -123,6 +127,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -154,6 +159,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -179,6 +185,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
|
||||
@@ -47,6 +47,8 @@ impl InvertedIndexApplierBuilder<'_> {
|
||||
mod tests {
|
||||
use std::collections::HashSet;
|
||||
|
||||
use store_api::region_request::PathType;
|
||||
|
||||
use super::*;
|
||||
use crate::error::Error;
|
||||
use crate::sst::index::inverted_index::applier::builder::tests::{
|
||||
@@ -61,6 +63,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -88,6 +91,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -115,6 +119,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
@@ -135,6 +140,7 @@ mod tests {
|
||||
let metadata = test_region_metadata();
|
||||
let mut builder = InvertedIndexApplierBuilder::new(
|
||||
"test".to_string(),
|
||||
PathType::Bare,
|
||||
test_object_store(),
|
||||
&metadata,
|
||||
HashSet::from_iter([1, 2, 3]),
|
||||
|
||||
@@ -446,7 +446,7 @@ mod tests {
|
||||
rows: BTreeSet<(&'static str, i32, [u64; 2])>,
|
||||
) -> impl Fn(DfExpr) -> BoxFuture<'static, Vec<usize>> {
|
||||
let (d, factory) = PuffinManagerFactory::new_for_test_async(prefix).await;
|
||||
let region_dir = "region0".to_string();
|
||||
let table_dir = "table0".to_string();
|
||||
let sst_file_id = FileId::random();
|
||||
let object_store = mock_object_store();
|
||||
let region_metadata = mock_region_metadata();
|
||||
@@ -471,7 +471,7 @@ mod tests {
|
||||
|
||||
let puffin_manager = factory.build(
|
||||
object_store.clone(),
|
||||
RegionFilePathFactory::new(region_dir.clone(), PathType::Bare),
|
||||
RegionFilePathFactory::new(table_dir.clone(), PathType::Bare),
|
||||
);
|
||||
|
||||
let sst_file_id = RegionFileId::new(region_metadata.region_id, sst_file_id);
|
||||
@@ -485,7 +485,8 @@ mod tests {
|
||||
let cache = Arc::new(InvertedIndexCache::new(10, 10, 100));
|
||||
let puffin_metadata_cache = Arc::new(PuffinMetadataCache::new(10, &CACHE_BYTES));
|
||||
let applier = InvertedIndexApplierBuilder::new(
|
||||
region_dir.clone(),
|
||||
table_dir.clone(),
|
||||
PathType::Bare,
|
||||
object_store.clone(),
|
||||
®ion_metadata,
|
||||
indexed_column_ids.clone(),
|
||||
|
||||
@@ -750,6 +750,7 @@ mod tests {
|
||||
let build_inverted_index_applier = |exprs: &[Expr]| {
|
||||
InvertedIndexApplierBuilder::new(
|
||||
FILE_DIR.to_string(),
|
||||
PathType::Bare,
|
||||
object_store.clone(),
|
||||
&metadata,
|
||||
HashSet::from_iter([0]),
|
||||
@@ -765,6 +766,7 @@ mod tests {
|
||||
let build_bloom_filter_applier = |exprs: &[Expr]| {
|
||||
BloomFilterIndexApplierBuilder::new(
|
||||
FILE_DIR.to_string(),
|
||||
PathType::Bare,
|
||||
object_store.clone(),
|
||||
&metadata,
|
||||
env.get_puffin_manager(),
|
||||
|
||||
@@ -144,6 +144,7 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
RegionOpener::new(
|
||||
region_id,
|
||||
region.table_dir(),
|
||||
region.access_layer.path_type(),
|
||||
self.memtable_builder_provider.clone(),
|
||||
self.object_store_manager.clone(),
|
||||
self.purge_scheduler.clone(),
|
||||
@@ -151,7 +152,6 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
self.intermediate_manager.clone(),
|
||||
self.time_provider.clone(),
|
||||
)
|
||||
.path_type(region.access_layer.path_type())
|
||||
.cache(Some(self.cache_manager.clone()))
|
||||
.options(region.version().options.clone())?
|
||||
.skip_wal_replay(true)
|
||||
|
||||
@@ -56,6 +56,7 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
let region = RegionOpener::new(
|
||||
region_id,
|
||||
&request.table_dir,
|
||||
request.path_type,
|
||||
self.memtable_builder_provider.clone(),
|
||||
self.object_store_manager.clone(),
|
||||
self.purge_scheduler.clone(),
|
||||
@@ -64,7 +65,6 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
self.time_provider.clone(),
|
||||
)
|
||||
.metadata_builder(builder)
|
||||
.path_type(request.path_type)
|
||||
.parse_options(request.options)?
|
||||
.cache(Some(self.cache_manager.clone()))
|
||||
.create_or_open(&self.config, &self.wal)
|
||||
|
||||
@@ -96,6 +96,7 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
let opener = match RegionOpener::new(
|
||||
region_id,
|
||||
&request.table_dir,
|
||||
request.path_type,
|
||||
self.memtable_builder_provider.clone(),
|
||||
self.object_store_manager.clone(),
|
||||
self.purge_scheduler.clone(),
|
||||
@@ -103,7 +104,6 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
self.intermediate_manager.clone(),
|
||||
self.time_provider.clone(),
|
||||
)
|
||||
.path_type(request.path_type)
|
||||
.skip_wal_replay(request.skip_wal_replay)
|
||||
.cache(Some(self.cache_manager.clone()))
|
||||
.wal_entry_reader(wal_entry_receiver.map(|receiver| Box::new(receiver) as _))
|
||||
|
||||
Reference in New Issue
Block a user