citus
pgbouncer
Our great sponsors
citus | pgbouncer | |
---|---|---|
61 | 34 | |
9,677 | 2,597 | |
2.9% | 4.4% | |
9.5 | 8.8 | |
6 days ago | 13 days ago | |
C | C | |
GNU Affero General Public License v3.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
citus
- SPQR 1.3.0: a production-ready system for horizontal scaling of PostgreSQL
-
Figma's Databases team lived to tell the scale
I see they don't mention Citus (https://github.com/citusdata/citus), which is already a fairly mature native Postgres extension. From the details given in the article, in sounds like they just reimplemented it.
I wonder if they were unaware of it or disregarded it for a reason —I currently am in a similar situation as the one described in the blog, trying to shard a massive Postgres DB.
-
PostgreSQL Is Enough
It is possible, if you pay for it. You can do Multi-AZ Clustered Instances in RDS, where you get the benefits of Multi-AZ failover with traffic sharing.
If you can run your own infra – at least on an EC2 level – you can do things like Citus [0] for Postgres, which is about as close to "just add database nodes" as you'll get.
-
Vitess 18
So while searching for something like this for postgres I came across citus. Any one know how that stacks up?
- Squeeze the hell out of the system you have
- Show HN: Hydra 1.0 – open-source column-oriented Postgres
-
Citus 12: Schema-based sharding for PostgreSQL
Not really. It's comparable to a regular Postgres upgrade.
But you can screw it up - see https://github.com/citusdata/citus/discussions/6934
-
Opinions and Suggestions for PostgreSQL Extension under Development
What about getting in touch with commercial organisations that have products/services based on PostgreSQL? For example Timescale, EDB, and Citus Data, or really any hosting provider that offers a managed PostgreSQL service.
-
Ask HN: It's 2023, how do you choose between MySQL and Postgres?
Friends don't let their friends choose Mysql :)
A super long time ago (decades) when I was using Oracle regularly I had to make a decision on which way to go. Although Mysql then had the mindshare I thought that Postgres was more similar to Oracle, more standards compliant, and more of a real enterprise type of DB. The rumor was also that Postgres was heavier than MySQL. Too many horror stories of lost data (MyIsam), bad transactions (MyIsam lacks transaction integrity), and the number of Mysql gotchas being a really long list influenced me.
In time I actually found out that I had underestimated one of the most important attributes of Postgres that was a huge strength over Mysql: the power of community. Because Postgres has a really superb community that can be found on Libera Chat and elsewhere, and they are very willing to help out, I think Postgres has a huge advantage over Mysql. RhodiumToad [Andrew Gierth] https://github.com/RhodiumToad & davidfetter [David Fetter] https://www.linkedin.com/in/davidfetter are incredibly helpful folks.
I don't know that Postgres' licensing made a huge difference or not but my perception is that there are a ton of 3rd party products based on Postgres but customized to specific DB needs because of the more liberalness of the PG license which is MIT/BSD derived https://www.postgresql.org/about/licence/
Some of the PG based 3rd party DBs:
Enterprise DB https://www.enterprisedb.com/ - general purpose PG with some variants
Greenplum https://greenplum.org/ - Data warehousing
Crunchydata https://www.crunchydata.com/products/hardened-postgres - high security Postgres for regulated environments
Citus https://www.citusdata.com - Distributed DB & Columnar
Timescale https://www.timescale.com/
Why Choose PG today?
If you want better ACID: Postgres
If you want more compliant SQL: Postgres
If you want more customizability to a variety of use-cases: Postgres using a variant
If you want the flexibility of using NOSQL at times: Postgres
If you want more product knowledge reusability for other backend products: Postgres
-
Can someone share experience configuring Highly Available PgSQL?
Citus - Citus is very much alive and is a thriving open-source and commercial product, but is not HA on its own. It is essentially distributed/sharded Postgres.
pgbouncer
-
Minha jornada de otimização de uma aplicação django
Pgbouncer - resolvia o problema do limite de conexões no postgres. Mas a API “saudável” manteve o número de conexões baixo o suficiente.
-
PgBouncer is useful, important, and fraught with peril
Pgbouncer maintainer here. Overall I think this is a great description of the tradeoffs that PgBouncer brings and how to work around/manage them. I'm actively working on fixing quite a few of the issues in this blog though
1. Named protocol-level prepared statements in transaction mode has a PR that's pretty close to being merged: https://github.com/pgbouncer/pgbouncer/pull/845
-
Supavisor: Scaling Postgres to 1 Million Connections
A common solution is connection pooling. Supabase currently offers pgbouncer which is single-threaded, making it difficult to scale. We've seen some novel ways to scale pgbouncer, but we have a few other goals in mind for our platform.
-
Citus 12: Schema-based sharding for PostgreSQL
Great observation! :)
We worked upstream to have `search_path` properly handled (tracked per client) by pgbouncer.
https://github.com/pgbouncer/pgbouncer/commit/8c18fc4d213ad4...
Check config.md in that commit for a verbose, humanized description.
-
The Database Package Manager for PostgreSQL Trusted Language Extensions
Connection poolers like PgBouncer [1] (traditional) and Supabase's Supavisor [2] (new) come to mind.
-
Show HN: Supavisor – a Postgres connection pooler written in Elixir
Interesting PR. It looks like https://github.com/pgbouncer/pgbouncer/pull/757 is more inline with multiple clients using the same prepared statements. I'll be watching that closely.
-
Reddit Recap Series: Backend Performance Tuning
Our backend services are using pgBouncer to pool PostgreSQL connections. During load testing, we found 2 problematic areas:
- Launch HN: Activepieces (YC S22) – Open-Source Zapier Alternative
-
PostgreSQL with PGBouncer
I also have a related pgbouncer PR open. Feel free to try it out, I'm planning to get it into the next pgbouncer release: https://github.com/pgbouncer/pgbouncer/pull/666
What are some alternatives?
odyssey - Scalable PostgreSQL connection pooler
Greenplum - Greenplum Database - Massively Parallel PostgreSQL for Analytics. An open-source massively parallel data platform for analytics, machine learning and AI.
yugabyte-db - YugabyteDB - the cloud native distributed SQL database for mission-critical applications.
asyncpg - A fast PostgreSQL Database Client Library for Python/asyncio.
vitess - Vitess is a database clustering system for horizontal scaling of MySQL.
pgcat - PostgreSQL pooler with sharding, load balancing and failover support. [Moved to: https://github.com/postgresml/pgcat]
TimescaleDB - An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.
pgcat - PostgreSQL pooler with sharding, load balancing and failover support.
dbt-core - dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.
stolon - PostgreSQL cloud native High Availability and more.
pg_auto_failover - Postgres extension and service for automated failover and high-availability