@@ -100,6 +100,7 @@ pub struct Server<C = HttpConnector, A = AddrIncoming, D = HttpsConnector<HttpCo
100100 pub heartbeat_config : Option < HeartbeatConfig > ,
101101 pub disable_namespaces : bool ,
102102 pub shutdown : Arc < Notify > ,
103+ pub max_active_namespaces : usize ,
103104}
104105
105106impl < C , A , D > Default for Server < C , A , D > {
@@ -117,6 +118,7 @@ impl<C, A, D> Default for Server<C, A, D> {
117118 heartbeat_config : Default :: default ( ) ,
118119 disable_namespaces : true ,
119120 shutdown : Default :: default ( ) ,
121+ max_active_namespaces : 100 ,
120122 }
121123 }
122124}
@@ -384,6 +386,7 @@ where
384386 db_config : self . db_config . clone ( ) ,
385387 base_path : self . path . clone ( ) ,
386388 auth : auth. clone ( ) ,
389+ max_active_namespaces : self . max_active_namespaces ,
387390 } ;
388391 let ( namespaces, proxy_service, replication_service) = replica. configure ( ) . await ?;
389392 self . rpc_client_config = None ;
@@ -422,6 +425,7 @@ where
422425 extensions,
423426 base_path : self . path . clone ( ) ,
424427 disable_namespaces : self . disable_namespaces ,
428+ max_active_namespaces : self . max_active_namespaces ,
425429 join_set : & mut join_set,
426430 auth : auth. clone ( ) ,
427431 } ;
@@ -487,6 +491,7 @@ struct Primary<'a, A> {
487491 extensions : Arc < [ PathBuf ] > ,
488492 base_path : Arc < Path > ,
489493 disable_namespaces : bool ,
494+ max_active_namespaces : usize ,
490495 auth : Arc < Auth > ,
491496 join_set : & ' a mut JoinSet < anyhow:: Result < ( ) > > ,
492497}
@@ -517,7 +522,12 @@ where
517522 disable_namespace : self . disable_namespaces ,
518523 } ;
519524 let factory = PrimaryNamespaceMaker :: new ( conf) ;
520- let namespaces = NamespaceStore :: new ( factory, false , self . db_config . snapshot_at_shutdown ) ;
525+ let namespaces = NamespaceStore :: new (
526+ factory,
527+ false ,
528+ self . db_config . snapshot_at_shutdown ,
529+ self . max_active_namespaces ,
530+ ) ;
521531
522532 // eagerly load the default namespace when namespaces are disabled
523533 if self . disable_namespaces {
@@ -583,6 +593,7 @@ struct Replica<C> {
583593 db_config : DbConfig ,
584594 base_path : Arc < Path > ,
585595 auth : Arc < Auth > ,
596+ max_active_namespaces : usize ,
586597}
587598
588599impl < C : Connector > Replica < C > {
@@ -605,7 +616,7 @@ impl<C: Connector> Replica<C> {
605616 max_total_response_size : self . db_config . max_total_response_size ,
606617 } ;
607618 let factory = ReplicaNamespaceMaker :: new ( conf) ;
608- let namespaces = NamespaceStore :: new ( factory, true , false ) ;
619+ let namespaces = NamespaceStore :: new ( factory, true , false , self . max_active_namespaces ) ;
609620 let replication_service = ReplicationLogProxyService :: new ( channel. clone ( ) , uri. clone ( ) ) ;
610621 let proxy_service = ReplicaProxyService :: new ( channel, uri, self . auth . clone ( ) ) ;
611622
0 commit comments