Skip to content

Pool always grows to ceiling and doesn't use idle connections #339

@bruceferguson2

Description

@bruceferguson2

I noticed while watching my DB and also watching debug events:

  1. I set floor to 3 and ceiling to 100 to account for very bursty activity.
  2. I send a query to the pool (pool.promises.query) and it immediately ramps up to 100 connections INSTEAD of just using the three that are idle due to the floor setting.
  3. It appears that the grow() function ALWAYS ramps up to ceiling when any query comes in.

It seems like the grow function should have something like:

if (idle.length > 0) {
return;
}

let needed = "some-logic-for-computing-needed connections"

Then use "needed" in the for loop to add new connections to the pool.

Perhaps the logic could be parameterized with something like:
percentageToAdd
minToAdd
maxtoAdd

Just thinking off the top of my head.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions