Supavisor
Infrastructure
connection pooler
SHOW HN2023
How HN took it
6 positive, 18 neutral or asking, 0 mixed, 3 critical, out of 27 comments about the project. Thread score +0.09.
Idea: 2 for, 1 againstExecution: 1 for, 1 againstPerformance: 0 for, 1 againstDesign: 1 for, 0 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Elixir and BEAM suit this kind of tool well.
From 2 comments
Binary pattern matching is great for working with protocols. Erlang process monitoring makes it very easy to handle client disconnects. And Elixir makes using Erlang a bit more…
chasers on HNI completely agree with chasers's points. Moreover, Elixir's excellent concurrency support and its fault-tolerant nature make it well-suited for handling a high number of…
abc3erl on HN
Excited for a PgBouncer alternative.
From 2 comments
I am so glad this exists, great work.
krainboltgreene on HNThis is so cool! Have been needing something like this for a long time! The Supabase team smashed it on this one!
dijonmusters on HN
Objections
Lacks routing of reads and writes across nodes.
From 2 comments
My issue with poolers has always been routing. This solution works in a vanilla cluster but not in a multi-node one. Can Supavisor route Reads across multiple nodes and Writes to…
vladsanchez on HNNot yet but we definitely are going to do that.
chasers on HN
Benchmark throughput seems low for BEAM.
From 1 comment
at work we run pgbouncer on 4 vCPU (GCP c2-standard-4) machines, at 60% load, and they do ~15k TPS at peak, however we only peak at ~45k connections per node. however, i think…
jhgg on HN
Elixir clients can already pool via Ecto and DBConnection.
From 1 comment
You could bring it in as an application but you already get pooling with Ecto via Postgrex and DBConnection. If you're using Elixir there's really no need for separate connection…
chasers on HN
Requests
Support prepared statements in transaction pooling mode.
From 2 comments
Feature request that would make me consider moving off of pgbouncer: make prepared statements work in transaction pooling mode. We've found that we can double our throughput by…
phamilton on HNI don't believe that provides the performance improvements we desire. The main reason prepared statements improves throughout is that it caches query plans. As I understand it,…
phamilton on HN
HTTP connections for serverless environments.
From 1 comment
> It will eventually be able to handle multiple types of connections: traditional TCP connections, and HTTP connections for developers who are connecting to Postgres in…
koolba on HN
Read/write routing across multiple nodes.
From 1 comment
My issue with poolers has always been routing. This solution works in a vanilla cluster but not in a multi-node one. Can Supavisor route Reads across multiple nodes and Writes to…
vladsanchez on HN
Questions
How telemetry metrics are affected by the pooler.
From 1 comment
Why not call this SupaPool? Supavisor is very BEAMie. Question about telemetry. These are the metrics emitted by Ecto: - :idle_time - the time the connection spent waiting before…
Dowwie on HN
Why poolboy instead of nimble_pool.
From 1 comment
Looking at the repo's mix file it seems to use poolboy for pooling. Given that dashbit and José helped out, was nimble_pool considered?
losvedir on HN
Whether it can run as a library in an Elixir app.
From 1 comment
Perhaps a dumb question but can you run it as a library in an existing elixir app to pool the connections of the app?
victorbjorklund on HN
Alternatives named
PgBouncer
From 2 comments
Feature request that would make me consider moving off of pgbouncer: make prepared statements work in transaction pooling mode. We've found that we can double our throughput by…
phamilton on HNat work we run pgbouncer on 4 vCPU (GCP c2-standard-4) machines, at 60% load, and they do ~15k TPS at peak, however we only peak at ~45k connections per node. however, i think…
jhgg on HN
pgpool
From 1 comment
My issue with poolers has always been routing. This solution works in a vanilla cluster but not in a multi-node one. Can Supavisor route Reads across multiple nodes and Writes to…
vladsanchez on HN
Ecto/Postgrex/DBConnection pooling
From 1 comment
You could bring it in as an application but you already get pooling with Ecto via Postgrex and DBConnection. If you're using Elixir there's really no need for separate connection…
chasers on HN