@@ -24,7 +24,7 @@ use compression::CompressorError;
2424use config:: ConfigError ;
2525use encryption:: EncryptionError ;
2626use erasure:: EncodingError ;
27- use futures:: future:: try_join_all ;
27+ use futures:: future:: join_all ;
2828use meta:: MetaStoreError ;
2929use std:: fmt;
3030use std:: path:: { Path , PathBuf } ;
@@ -63,17 +63,18 @@ pub type ZstorResult<T> = Result<T, ZstorError>;
6363pub async fn setup_system ( cfg_path : PathBuf , cfg : & Config ) -> ZstorResult < Addr < ZstorActor > > {
6464 let metastore = match cfg. meta ( ) {
6565 Meta :: Zdb ( zdb_cfg) => {
66- let backends = try_join_all (
66+ let backends = join_all (
6767 zdb_cfg
6868 . backends ( )
6969 . iter ( )
7070 . map ( |ci| UserKeyZdb :: new ( ci. clone ( ) ) ) ,
7171 )
72- . await ? ;
72+ . await ;
7373 let encryptor = match cfg. encryption ( ) {
7474 Encryption :: Aes ( key) => encryption:: AesGcm :: new ( key. clone ( ) ) ,
7575 } ;
7676 let encoder = zdb_cfg. encoder ( ) ;
77+ let backends = backends. into_iter ( ) . filter_map ( |res| res. ok ( ) ) . collect ( ) ;
7778 Box :: new ( ZdbMetaStore :: new (
7879 backends,
7980 encoder,
@@ -88,7 +89,8 @@ pub async fn setup_system(cfg_path: PathBuf, cfg: &Config) -> ZstorResult<Addr<Z
8889 if let Some ( mountpoint) = cfg. zdbfs_mountpoint ( ) {
8990 let _ = ZdbFsStatsProxyActor :: new ( mountpoint. to_path_buf ( ) , metrics_addr. clone ( ) ) . start ( ) ;
9091 }
91- let meta_addr = MetaStoreActor :: new ( metastore) . start ( ) ;
92+ let meta_writable = metastore. writable ( ) ;
93+ let meta_addr = MetaStoreActor :: new ( metastore, meta_writable) . start ( ) ;
9294 let cfg_addr = ConfigActor :: new ( cfg_path, cfg. clone ( ) ) . start ( ) ;
9395 let pipeline_addr = SyncArbiter :: start ( 1 , || PipelineActor ) ;
9496
0 commit comments