@@ -28,7 +28,7 @@ use log_store::kafka::log_store::KafkaLogStore;
2828use log_store:: noop:: log_store:: NoopLogStore ;
2929use log_store:: raft_engine:: log_store:: RaftEngineLogStore ;
3030use object_store:: manager:: ObjectStoreManagerRef ;
31- use object_store:: util:: { join_dir , normalize_dir} ;
31+ use object_store:: util:: normalize_dir;
3232use snafu:: { OptionExt , ResultExt , ensure} ;
3333use store_api:: logstore:: LogStore ;
3434use store_api:: logstore:: provider:: Provider ;
@@ -49,8 +49,7 @@ use crate::error::{
4949 Result , StaleLogEntrySnafu ,
5050} ;
5151use crate :: manifest:: action:: RegionManifest ;
52- use crate :: manifest:: manager:: { RegionManifestManager , RegionManifestOptions , RemoveFileOptions } ;
53- use crate :: manifest:: storage:: manifest_compress_type;
52+ use crate :: manifest:: manager:: { RegionManifestManager , RegionManifestOptions } ;
5453use crate :: memtable:: MemtableBuilderProvider ;
5554use crate :: memtable:: bulk:: part:: BulkPart ;
5655use crate :: memtable:: time_partition:: { TimePartitions , TimePartitionsRef } ;
@@ -272,7 +271,7 @@ impl RegionOpener {
272271 } ;
273272 // Create a manifest manager for this region and writes regions to the manifest file.
274273 let region_manifest_options =
275- Self :: manifest_options ( config, & options , & region_dir, & self . object_store_manager ) ? ;
274+ RegionManifestOptions :: new ( config, & region_dir, & object_store ) ;
276275 // For remote WAL, we need to set flushed_entry_id to current topic's latest entry id.
277276 let flushed_entry_id = provider. initial_flushed_entry_id :: < S > ( wal. store ( ) ) ;
278277 let manifest_manager = RegionManifestManager :: new (
@@ -406,13 +405,9 @@ impl RegionOpener {
406405 ) -> Result < Option < MitoRegionRef > > {
407406 let now = Instant :: now ( ) ;
408407 let mut region_options = self . options . as_ref ( ) . unwrap ( ) . clone ( ) ;
409-
410- let region_manifest_options = Self :: manifest_options (
411- config,
412- & region_options,
413- & self . region_dir ( ) ,
414- & self . object_store_manager ,
415- ) ?;
408+ let object_storage = get_object_store ( & region_options. storage , & self . object_store_manager ) ?;
409+ let region_manifest_options =
410+ RegionManifestOptions :: new ( config, & self . region_dir ( ) , & object_storage) ;
416411 let Some ( manifest_manager) =
417412 RegionManifestManager :: open ( region_manifest_options, & self . stats ) . await ?
418413 else {
@@ -576,27 +571,6 @@ impl RegionOpener {
576571
577572 Ok ( Some ( region) )
578573 }
579-
580- /// Returns a new manifest options.
581- fn manifest_options (
582- config : & MitoConfig ,
583- options : & RegionOptions ,
584- region_dir : & str ,
585- object_store_manager : & ObjectStoreManagerRef ,
586- ) -> Result < RegionManifestOptions > {
587- let object_store = get_object_store ( & options. storage , object_store_manager) ?;
588- Ok ( RegionManifestOptions {
589- manifest_dir : new_manifest_dir ( region_dir) ,
590- object_store,
591- // We don't allow users to set the compression algorithm as we use it as a file suffix.
592- // Currently, the manifest storage doesn't have good support for changing compression algorithms.
593- compress_type : manifest_compress_type ( config. compress_manifest ) ,
594- checkpoint_distance : config. manifest_checkpoint_distance ,
595- remove_file_options : RemoveFileOptions {
596- enable_gc : config. gc . enable ,
597- } ,
598- } )
599- }
600574}
601575
602576/// Creates a version builder from a region manifest.
@@ -678,12 +652,9 @@ impl RegionMetadataLoader {
678652 region_dir : & str ,
679653 region_options : & RegionOptions ,
680654 ) -> Result < Option < Arc < RegionManifest > > > {
681- let region_manifest_options = RegionOpener :: manifest_options (
682- & self . config ,
683- region_options,
684- region_dir,
685- & self . object_store_manager ,
686- ) ?;
655+ let object_store = get_object_store ( & region_options. storage , & self . object_store_manager ) ?;
656+ let region_manifest_options =
657+ RegionManifestOptions :: new ( & self . config , region_dir, & object_store) ;
687658 let Some ( manifest_manager) =
688659 RegionManifestManager :: open ( region_manifest_options, & Default :: default ( ) ) . await ?
689660 else {
@@ -848,11 +819,6 @@ where
848819 Ok ( last_entry_id)
849820}
850821
851- /// Returns the directory to the manifest files.
852- pub ( crate ) fn new_manifest_dir ( region_dir : & str ) -> String {
853- join_dir ( region_dir, "manifest" )
854- }
855-
856822/// A task to load and fill the region file cache.
857823pub ( crate ) struct RegionLoadCacheTask {
858824 region : MitoRegionRef ,
0 commit comments