Pria

Pria

What does queue_target and queue interval exactly mean in DBConnection?

I read the definition in the docs
https://hexdocs.pm/db_connection/DBConnection.html#start_link/2-queue-config

But I am confused as to what they mean and how do they work. The example given is confusing. Can someone explain me this?

Most Liked

dgigafox

dgigafox

This is an extremely late reply but would like to provide my own answer in case someone visits.

  • A database connection has a limited number of pool connections.
  • If we set queue interval to be 1s and queue target to 50ms then for every 1s (queue interval) it will check if all connections take longer than 50ms (queue target) to checkout or become available to accept a query. If yes, then it will double the target to 100ms.
  • If again for the next interval it sees that connections take longer than 100ms to checkout then that is the time the connection will drop queries to prevent further burden to the database
dimitarvp

dimitarvp

This answer I wrote a while ago might help you.

lkuty

lkuty

See https://stackoverflow.com/q/66043381/452614

The timeouts you’re referring to are set with the :timeout option in execution functions (i.e. execute/4), :queue_target and :queue_interval are only meant to affect the pool’s ability to begin new requests (for requests to checkout connections from the pool), not requests that have already checked out connections and are already being processed.

Keep in mind that all attempts to checkout connections during a :queue_interval must take longer than :queue_target in order for these values to affect anything. Normally you’d test different values and monitor your database’s ability to keep up in order to find optimal values for your environment.

Where Next?

Popular in Questions Top

mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

Other popular topics Top

baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New

We're in Beta

About us Mission Statement