MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / PoolWithFailover

Method PoolWithFailover

src/Core/PostgreSQL/PoolWithFailover.cpp:85–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83}
84
85PoolWithFailover::PoolWithFailover(
86 const ReplicasConfigurationByPriority & configurations_by_priority,
87 size_t pool_size,
88 size_t pool_wait_timeout_,
89 size_t max_tries_,
90 bool auto_close_connection_,
91 size_t connection_attempt_timeout_,
92 bool bg_reconnect_)
93 : pool_wait_timeout(pool_wait_timeout_)
94 , max_tries(max_tries_)
95 , auto_close_connection(auto_close_connection_)
96 , bg_reconnect(bg_reconnect_)
97{
98 LOG_TRACE(getLogger("PostgreSQLConnectionPool"), "PostgreSQL connection pool size: {}, connection wait timeout: {}, max failover tries: {}",
99 pool_size, pool_wait_timeout, max_tries_);
100
101 for (const auto & [priority, configurations] : configurations_by_priority)
102 {
103 for (const auto & replica_configuration : configurations)
104 {
105 auto connection_info = formatConnectionString(
106 replica_configuration.database,
107 replica_configuration.host,
108 replica_configuration.port,
109 replica_configuration.username,
110 replica_configuration.password,
111 connection_attempt_timeout_);
112 replicas_with_priority[priority].emplace_back(std::make_shared<PoolHolder>(connection_info, pool_size));
113 if (bg_reconnect)
114 DB::ReplicasReconnector::instance().add(connectionReestablisher(std::weak_ptr(replicas_with_priority[priority].back()), pool_wait_timeout));
115 }
116 }
117}
118
119PoolWithFailover::PoolWithFailover(
120 const DB::StoragePostgreSQL::Configuration & configuration,

Callers

nothing calls this directly

Calls 6

formatConnectionStringFunction · 0.85
connectionReestablisherFunction · 0.85
getLoggerFunction · 0.50
emplace_backMethod · 0.45
addMethod · 0.45
backMethod · 0.45

Tested by

no test coverage detected