userver: components::MultiMongo Class Reference
Loading...
Searching...
No Matches
components::MultiMongo Class Reference

#include <userver/storages/mongo/component.hpp>

Detailed Description

Dynamically configurable MongoDB client component.

Provides access to a dynamically reconfigurable set of MongoDB databases.

Dynamic options:

Static configuration example:

multi-mongo:
appname: userver-sample
conn_timeout: 2s
so_timeout: 10s
queue_timeout: 1s
initial_size: 16
max_size: 128
idle_limit: 64
connecting_limit: 8
local_threshold: 15ms
stats_verbosity: terse

Static options:

Name Description Default value
appname application name for the DB server userver
conn_timeout connection timeout 2s
so_timeout socket timeout 10s
queue_timeout max connection queue wait time 1s
initial_size number of connections created initially (per database) 16
max_size limit for total connections number (per database) 128
idle_limit limit for idle connections number (per database) 64
connecting_limit limit for establishing connections number (per database) 8
local_threshold latency window for instance selection mongodb default
max_replication_lag replication lag limit for usable secondaries, min. 90s -
stats_verbosity changes the granularity of reported metrics 'terse'
dns_resolver server hostname resolver type (getaddrinfo or async) 'async'

stats_verbosity accepts one of the following values:

Value Description
terse Default value, report only cumulative stats and read/write totals
full Separate metrics for each operation, divided by read preference or write concern

Definition at line 169 of file component.hpp.

+ Inheritance diagram for components::MultiMongo:
+ Collaboration diagram for components::MultiMongo:

Public Types

using PoolSet = storages::mongo::MultiMongo::PoolSet
 

Public Member Functions

 MultiMongo (const ComponentConfig &, const ComponentContext &)
 Component constructor.
 
 ~MultiMongo () override
 Component destructor.
 
storages::mongo::PoolPtr GetPool (const std::string &dbalias) const
 Client pool accessor.
 
void AddPool (std::string dbalias)
 Adds a database to the working set by its name. Equivalent to NewPoolSet()-AddExistingPools()-AddPool(dbalias)-Activate()
 
bool RemovePool (const std::string &dbalias)
 Removes the database with the specified name from the working set. Equivalent to NewPoolSet()-AddExistingPools()-RemovePool(dbalias)-Activate()
 
storages::mongo::MultiMongo::PoolSet NewPoolSet ()
 Creates an empty database set bound to the component.
 
- Public Member Functions inherited from components::LoggableComponentBase
 LoggableComponentBase (const ComponentConfig &, const ComponentContext &)
 
 LoggableComponentBase (LoggableComponentBase &&)=delete
 
 LoggableComponentBase (const LoggableComponentBase &)=delete
 
 ~LoggableComponentBase () override=default
 
ComponentHealth GetComponentHealth () const override
 
void OnLoadingCancelled () override
 
void OnAllComponentsLoaded () override
 
void OnAllComponentsAreStopping () override
 

Static Public Member Functions

static yaml_config::Schema GetStaticConfigSchema ()
 
- Static Public Member Functions inherited from components::LoggableComponentBase
static yaml_config::Schema GetStaticConfigSchema ()
 

Static Public Attributes

static constexpr std::string_view kName = "multi-mongo"
 The default name of components::MultiMongo.
 

Member Typedef Documentation

◆ PoolSet

Member Function Documentation

◆ AddPool()

void components::MultiMongo::AddPool ( std::string dbalias)

Adds a database to the working set by its name. Equivalent to NewPoolSet()-AddExistingPools()-AddPool(dbalias)-Activate()

Parameters
dbaliasname of the database in secdist config

◆ GetPool()

storages::mongo::PoolPtr components::MultiMongo::GetPool ( const std::string & dbalias) const

Client pool accessor.

Parameters
dbaliasname previously passed to AddPool
Exceptions
PoolNotFoundif no such database is enabled

◆ RemovePool()

bool components::MultiMongo::RemovePool ( const std::string & dbalias)

Removes the database with the specified name from the working set. Equivalent to NewPoolSet()-AddExistingPools()-RemovePool(dbalias)-Activate()

Parameters
dbaliasname of the database passed to AddPool
Returns
whether the database was in the working set

The documentation for this class was generated from the following file: