Skip to content

Commit f8ef6ac

Browse files
authored
change default values for Event DB timeouts (#3341)
1 parent 1a0c8fb commit f8ef6ac

File tree

3 files changed

+36
-36
lines changed

3 files changed

+36
-36
lines changed

catalyst-gateway/bin/src/db/event/mod.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -336,12 +336,15 @@ pub fn establish_connection_pool() {
336336
}
337337

338338
let pg_mgr = deadpool_postgres::Manager::new(config, tokio_postgres::NoTls);
339-
340339
match deadpool::managed::Pool::builder(pg_mgr)
341340
.max_size(Settings::event_db_settings().max_connections() as usize)
342-
.create_timeout(Settings::event_db_settings().connection_creation_timeout())
343-
.wait_timeout(Settings::event_db_settings().slot_wait_timeout())
344-
.recycle_timeout(Settings::event_db_settings().connection_recycle_timeout())
341+
.create_timeout(Some(
342+
Settings::event_db_settings().connection_creation_timeout(),
343+
))
344+
.wait_timeout(Some(Settings::event_db_settings().slot_wait_timeout()))
345+
.recycle_timeout(Some(
346+
Settings::event_db_settings().connection_recycle_timeout(),
347+
))
345348
.runtime(deadpool::Runtime::Tokio1)
346349
.build()
347350
{

catalyst-gateway/bin/src/settings/event_db.rs

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,17 @@ use std::time::Duration;
44

55
use super::str_env_var::StringEnvVar;
66

7-
/// Sets the maximum number of connections managed by the pool.
8-
/// Defaults to 100.
9-
const EVENT_DB_MAX_CONNECTIONS: u32 = 100;
7+
/// Default the maximum number of connections managed by the pool.
8+
const EVENT_DB_MAX_CONNECTIONS_DEFAULT: u32 = 100;
9+
10+
/// Default the timeout when creating a new connection.
11+
const EVENT_DB_CONN_TIMEOUT_DEFAULT: Duration = Duration::from_secs(5);
12+
13+
/// Default the timeout for waiting for a slot to become available.
14+
const EVENT_DB_SLOT_WAIT_TIMEOUT_DEFAULT: Duration = Duration::from_secs(5);
15+
16+
/// Default the timeout when for recycling a connection.
17+
const EVENT_DB_CONN_RECYCLE_TIMEOUT_DEFAULT: Duration = Duration::from_secs(5);
1018

1119
/// Default Event DB URL.
1220
const EVENT_DB_URL_DEFAULT: &str =
@@ -29,13 +37,16 @@ pub(crate) struct EnvVars {
2937
max_connections: u32,
3038

3139
/// Sets the timeout when creating a new connection.
32-
connection_creation_timeout: Option<Duration>,
40+
/// Defaults to 5 seconds.
41+
connection_creation_timeout: Duration,
3342

3443
/// Sets the timeout for waiting for a slot to become available.
35-
slot_wait_timeout: Option<Duration>,
44+
/// Defaults to 5 seconds.
45+
slot_wait_timeout: Duration,
3646

3747
/// Sets the timeout when for recycling a connection.
38-
connection_recycle_timeout: Option<Duration>,
48+
/// Defaults to 5 seconds.
49+
connection_recycle_timeout: Duration,
3950
}
4051

4152
impl EnvVars {
@@ -47,16 +58,21 @@ impl EnvVars {
4758
password: StringEnvVar::new_optional("EVENT_DB_PASSWORD", true),
4859
max_connections: StringEnvVar::new_as_int(
4960
"EVENT_DB_MAX_CONNECTIONS",
50-
EVENT_DB_MAX_CONNECTIONS,
61+
EVENT_DB_MAX_CONNECTIONS_DEFAULT,
5162
0,
5263
u32::MAX,
5364
),
54-
connection_creation_timeout: StringEnvVar::new_as_duration_optional(
65+
connection_creation_timeout: StringEnvVar::new_as_duration(
5566
"EVENT_DB_CONN_TIMEOUT",
67+
EVENT_DB_CONN_TIMEOUT_DEFAULT,
68+
),
69+
slot_wait_timeout: StringEnvVar::new_as_duration(
70+
"EVENT_DB_SLOT_WAIT_TIMEOUT",
71+
EVENT_DB_SLOT_WAIT_TIMEOUT_DEFAULT,
5672
),
57-
slot_wait_timeout: StringEnvVar::new_as_duration_optional("EVENT_DB_SLOT_WAIT_TIMEOUT"),
58-
connection_recycle_timeout: StringEnvVar::new_as_duration_optional(
73+
connection_recycle_timeout: StringEnvVar::new_as_duration(
5974
"EVENT_DB_CONN_RECYCLE_TIMEOUT",
75+
EVENT_DB_CONN_RECYCLE_TIMEOUT_DEFAULT,
6076
),
6177
}
6278
}
@@ -82,17 +98,17 @@ impl EnvVars {
8298
}
8399

84100
/// Returns Event DB `connection_creation_timeout` setting
85-
pub(crate) fn connection_creation_timeout(&self) -> Option<Duration> {
101+
pub(crate) fn connection_creation_timeout(&self) -> Duration {
86102
self.connection_creation_timeout
87103
}
88104

89105
/// Returns Event DB `slot_wait_timeout` setting
90-
pub(crate) fn slot_wait_timeout(&self) -> Option<Duration> {
106+
pub(crate) fn slot_wait_timeout(&self) -> Duration {
91107
self.slot_wait_timeout
92108
}
93109

94110
/// Returns Event DB `connection_recycle_timeout` setting
95-
pub(crate) fn connection_recycle_timeout(&self) -> Option<Duration> {
111+
pub(crate) fn connection_recycle_timeout(&self) -> Duration {
96112
self.connection_recycle_timeout
97113
}
98114
}

catalyst-gateway/bin/src/settings/str_env_var.rs

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -210,25 +210,6 @@ impl StringEnvVar {
210210
.into()
211211
}
212212

213-
/// Convert an Envvar into the required Duration type.
214-
pub(crate) fn new_as_duration_optional(var_name: &str) -> Option<Duration> {
215-
let choices = "A value in the format of `[0-9]+(ns|us|ms|[smhdwy])`";
216-
217-
let raw_value = Self::new_optional(var_name, false)?.as_string();
218-
219-
DurationString::try_from(raw_value.clone())
220-
.inspect_err(|err| {
221-
error!(
222-
error = ?err,
223-
choices=choices,
224-
duration_str = raw_value,
225-
"Invalid Duration string. Defaulting to None",
226-
);
227-
})
228-
.map(Into::into)
229-
.ok()
230-
}
231-
232213
/// Convert an Envvar into an integer in the bounded range.
233214
pub(super) fn new_as_int<T>(
234215
var_name: &str,

0 commit comments

Comments
 (0)