@@ -28,7 +28,7 @@ use crate::remotefs::gcs::GCSRemoteFs;
2828use crate :: remotefs:: minio:: MINIORemoteFs ;
2929use crate :: remotefs:: queue:: QueueRemoteFs ;
3030use crate :: remotefs:: s3:: S3RemoteFs ;
31- use crate :: remotefs:: { LocalDirRemoteFs , RemoteFs } ;
31+ use crate :: remotefs:: { ExtendedRemoteFs , LocalDirRemoteFs , RemoteFs } ;
3232use crate :: scheduler:: SchedulerImpl ;
3333use crate :: sql:: cache:: SqlResultCache ;
3434use crate :: sql:: { SqlService , SqlServiceImpl } ;
@@ -518,6 +518,8 @@ pub trait ConfigObj: DIService {
518518
519519 fn dump_dir ( & self ) -> & Option < PathBuf > ;
520520
521+ fn snapshots_deletion_batch_size ( & self ) -> u64 ;
522+
521523 fn minimum_metastore_snapshots_count ( & self ) -> u64 ;
522524
523525 fn metastore_snapshots_lifetime ( & self ) -> u64 ;
@@ -630,6 +632,7 @@ pub struct ConfigObjImpl {
630632 pub drop_ws_processing_messages_after_secs : u64 ,
631633 pub drop_ws_complete_messages_after_secs : u64 ,
632634 pub skip_kafka_parsing_errors : bool ,
635+ pub snapshots_deletion_batch_size : u64 ,
633636 pub minimum_metastore_snapshots_count : u64 ,
634637 pub metastore_snapshots_lifetime : u64 ,
635638 pub minimum_cachestore_snapshots_count : u64 ,
@@ -953,6 +956,10 @@ impl ConfigObj for ConfigObjImpl {
953956 & self . dump_dir
954957 }
955958
959+ fn snapshots_deletion_batch_size ( & self ) -> u64 {
960+ self . snapshots_deletion_batch_size
961+ }
962+
956963 fn minimum_metastore_snapshots_count ( & self ) -> u64 {
957964 self . minimum_metastore_snapshots_count
958965 }
@@ -1486,6 +1493,11 @@ impl Config {
14861493 10 * 60 ,
14871494 ) ,
14881495 skip_kafka_parsing_errors : env_parse ( "CUBESTORE_SKIP_KAFKA_PARSING_ERRORS" , false ) ,
1496+ // Presently, not useful to make more than upload_concurrency times constant
1497+ snapshots_deletion_batch_size : env_parse (
1498+ "CUBESTORE_SNAPSHOTS_DELETION_BATCH_SIZE" ,
1499+ 80 ,
1500+ ) ,
14891501 minimum_metastore_snapshots_count : env_parse (
14901502 "CUBESTORE_MINIMUM_METASTORE_SNAPSHOTS_COUNT" ,
14911503 5 ,
@@ -1652,6 +1664,7 @@ impl Config {
16521664 drop_ws_processing_messages_after_secs : 60 ,
16531665 drop_ws_complete_messages_after_secs : 10 ,
16541666 skip_kafka_parsing_errors : false ,
1667+ snapshots_deletion_batch_size : 80 ,
16551668 minimum_metastore_snapshots_count : 3 ,
16561669 metastore_snapshots_lifetime : 24 * 3600 ,
16571670 minimum_cachestore_snapshots_count : 3 ,
@@ -1894,7 +1907,8 @@ impl Config {
18941907 self . injector
18951908 . register ( "cachestore_fs" , async move |i| {
18961909 // TODO metastore works with non queue remote fs as it requires loops to be started prior to load_from_remote call
1897- let original_remote_fs = i. get_service ( "original_remote_fs" ) . await ;
1910+ let original_remote_fs: Arc < dyn ExtendedRemoteFs > =
1911+ i. get_service ( "original_remote_fs" ) . await ;
18981912 let arc: Arc < dyn DIService > = BaseRocksStoreFs :: new_for_cachestore (
18991913 original_remote_fs,
19001914 i. get_service_typed ( ) . await ,
@@ -1969,7 +1983,8 @@ impl Config {
19691983 self . injector
19701984 . register ( "metastore_fs" , async move |i| {
19711985 // TODO metastore works with non queue remote fs as it requires loops to be started prior to load_from_remote call
1972- let original_remote_fs = i. get_service ( "original_remote_fs" ) . await ;
1986+ let original_remote_fs: Arc < dyn ExtendedRemoteFs > =
1987+ i. get_service ( "original_remote_fs" ) . await ;
19731988 let arc: Arc < dyn DIService > = BaseRocksStoreFs :: new_for_metastore (
19741989 original_remote_fs,
19751990 i. get_service_typed ( ) . await ,
0 commit comments