{"repo":"supabase/supavisor","free":true,"listed":false,"github":"https://github.com/supabase/supavisor","clone":"git clone https://github.com/supabase/supavisor.git","description":"A cloud-native, multi-tenant Postgres connection pooler.","language":"Elixir","stars":2255,"topics":["elixir","erlang","postgresql"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Supavisor - Postgres connection pooler - Overview - Motivation - Architecture - Docs - Features - Future work - Acknowledgements - Benchmarks - Inspiration Overview Supavisor is a scalable, cloud-native Postgres connection pooler. A Supavisor cluster is capable of proxying millions of Postgres end-client connections into a stateful pool of native Postgres database connections. For database managers, Supavisor simplifies the task of managing Postgres clusters by providing easy configuration of highly available Postgres clusters (todo). Motivation We have several goals with Supavisor: - Zero-downtime scaling : we want to scale Postgres server compute with zero-downtime. To do this, we need an external Pooler that can buffer and re-route requests while the resizing operation is in progress. - Handling modern connection demands : We need a Pooler that can absorb millions of connections. We often see developers connecting to Postgres from Serverless environments, and so we also need something that works with both TCP and HTTP protocols. - Efficiency : Our customers pay for database processing power, and our goal is to maximize their database capacity. While PgBouncer is resource-efficient, it still consumes some resources on the database instance. By moving connection pooling to a dedicated cluster adjacent to tenant databases, we can free up additional resources to better serve customer queries. Architecture Supavisor was designed to work in a cloud computing environment as a hig","default_branch":null,"files":null,"tree":[],"storefront":"/r/supabase","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/supabase/supavisor/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}