diff --git a/apps/www/_blog/2023-08-11-supavisor-1-million.mdx b/apps/www/_blog/2023-08-11-supavisor-1-million.mdx index d357806d44a..71cb3e64137 100644 --- a/apps/www/_blog/2023-08-11-supavisor-1-million.mdx +++ b/apps/www/_blog/2023-08-11-supavisor-1-million.mdx @@ -26,7 +26,7 @@ Supavisor is a scalable, cloud-native Postgres connection pooler. It has been de diagram of supavisor architecture Supavisor will enable us to build some exciting new features for your Postgres cluster: @@ -56,7 +56,7 @@ In the first test, we set up a single ARM 16-core Supavisor instance on Ubuntu 2 diagram supavisor 1 instance dark We wanted to assess the capacity of a single Supavisor instance. We achieved: @@ -67,7 +67,7 @@ We wanted to assess the capacity of a single Supavisor instance. We achieved: diagram supavisor 1 instance dark With this setup the database is the bottleneck - 20,000 QPS was the maximum this instance could handle. Increasing QPS would have been possible with a larger instance or read-replicas, but we wanted to focus on the scalability of Supavisor's connection limit (not Postgres's). Since Supavisor is built with multi-tenancy, addition of read-replicas is as easy as sending a single post request. @@ -91,7 +91,7 @@ In the next step, we focused on Supavisor's vertical scaling capabilities by con diagram supavisor 1 instance dark The system showed no signs of instability or performance degradation. QPS remained constant at 20,000, proving that an increased number of connections doesn't negatively affect Supavisor's overall performance (this is generally expected from a [BEAM-based language](https://stressgrid.com/blog/webserver_benchmark/) like Elixir). @@ -132,7 +132,7 @@ To examine horizontal scalability, we deployed two 64-core Supavisor instances, diagram supavisor 1 instance dark In the Supavisor architecture, only a single node holds direct connections to each database instance. When you add more Postgres databases or read-replicas, Supavisor spreads the connections to the replicas. Every Supavisor instance can accept incoming connections and either execute queries themselves (if they directly connected) or relay to another node (if not). @@ -177,7 +177,7 @@ In a multi-tenant setup (or when using Read-Replicas), the load is much more eve diagram supavisor 1 instance dark ### Supavisor's impact on query duration @@ -259,7 +259,7 @@ Currently, every Supabase project comes with its own PgBouncer server running on diagram supavisor 1 instance dark _Supavisor architecture_ @@ -268,7 +268,7 @@ In the future, you connect to a distinct multi-tenant Supavisor cluster through diagram supavisor 1 instance dark We ran 5,000 queries per second for each configuration, this time experimenting with `insert` query. To make the expreriment more realistic, we enabled the PostGIS extension to store coordinates: diff --git a/apps/www/public/images/blog/launch-week-8/day-5/pooler-diagram-github--dark.png b/apps/www/public/images/blog/launch-week-8/day-5/pooler-diagram-github--dark.png new file mode 100644 index 00000000000..a04e8a4239d Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/pooler-diagram-github--dark.png differ diff --git a/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--250k-test.png b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--250k-test.png new file mode 100644 index 00000000000..94ae34e6dad Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--250k-test.png differ diff --git a/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--500k-test.png b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--500k-test.png new file mode 100644 index 00000000000..15c6c9ae76b Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--500k-test.png differ diff --git a/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--baseline.png b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--baseline.png new file mode 100644 index 00000000000..c29b2df763f Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--baseline.png differ diff --git a/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--multi-tenant-concept.png b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--multi-tenant-concept.png new file mode 100644 index 00000000000..649c8067464 Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--multi-tenant-concept.png differ diff --git a/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--pgbouncer.png b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--pgbouncer.png new file mode 100644 index 00000000000..cb7c7e39e1e Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--pgbouncer.png differ diff --git a/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--scaling-to-1million.png b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--scaling-to-1million.png new file mode 100644 index 00000000000..c13e8437f76 Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--scaling-to-1million.png differ diff --git a/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--supavisor-and-supabase.png b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--supavisor-and-supabase.png new file mode 100644 index 00000000000..c50846ed7a2 Binary files /dev/null and b/apps/www/public/images/blog/launch-week-8/day-5/supavisor-tests--supavisor-and-supabase.png differ