Skip to content

Split DB_POOL_SIZE & DB_MIN_IDLE environment variables #3922

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Sep 16, 2021

Conversation

justahero
Copy link
Contributor

This PR splits the existing environment variables DB_POOL_SIZE & DB_MIN_IDLE into separate variables to provide different connection settings to the primary & replica databases. The main reason for this change is to be able to configure different values for both database pools.

The new env variables are:

  • DB_PRIMARY_POOL_SIZE & DB_REPLICA_POOL_SIZE to configure the number of connections in the primary & replica pool
  • DB_PRIMARY_MIN_IDLE & DB_REPLICA_MIN_IDLE to set the number of idle connections each pool at least maintains
  • update descriptions of env vars.

Note the descriptions of the *_POOL_SIZE variables in app.json are most likely off & need correct wording.

This moves the configuration of `DB_POOL_SIZE` into the `DbPoolConfig`
struct.
The change splits the environment variable `DB_POOL_SIZE` into two
separate ones, `DB_PRIMARY_POOL_SIZE` set in the primary database,
`DB_REPLICA_POOL_SIZE` in the replica database.

* refactor db configuration in App
Similar to env vars `DB_PRIMARY_POOL_SIZE` and `DB_REPLICA_POOL_SIZE`
the variable `DB_MIN_IDLE` moved to the `full_from_environment`
function.
The change splits the `DB_MIN_IDLE` into `DB_PRIMARY_MIN_IDLE` &
`DB_REPLICA_MIN_IDLE` to configure both primary and replica differently.
* set primary db pool size in middleware
* set db pool sizes in test environment
@Turbo87 Turbo87 added A-backend ⚙️ C-internal 🔧 Category: Nonessential work that would make the codebase more consistent or clear labels Sep 13, 2021
@pietroalbini
Copy link
Member

Thanks!

@bors r+

@bors
Copy link
Contributor

bors commented Sep 16, 2021

📌 Commit dd14199 has been approved by pietroalbini

@bors
Copy link
Contributor

bors commented Sep 16, 2021

⌛ Testing commit dd14199 with merge fe45cac...

@bors
Copy link
Contributor

bors commented Sep 16, 2021

☀️ Test successful - checks-actions
Approved by: pietroalbini
Pushing fe45cac to master...

@bors bors merged commit fe45cac into rust-lang:master Sep 16, 2021
@pietroalbini pietroalbini deleted the split-db-pool-size-env-vars branch March 17, 2022 09:52
@pietroalbini pietroalbini restored the split-db-pool-size-env-vars branch March 17, 2022 09:52
@pietroalbini pietroalbini deleted the split-db-pool-size-env-vars branch March 17, 2022 09:52
@pietroalbini pietroalbini restored the split-db-pool-size-env-vars branch March 17, 2022 09:52
@pietroalbini pietroalbini deleted the split-db-pool-size-env-vars branch March 17, 2022 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-backend ⚙️ C-internal 🔧 Category: Nonessential work that would make the codebase more consistent or clear
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants