spqr
citus
spqr | citus | |
---|---|---|
5 | 61 | |
692 | 9,840 | |
18.9% | 1.2% | |
9.7 | 9.4 | |
2 days ago | 11 days ago | |
Go | C | |
GNU General Public License v3.0 or later | GNU Affero General Public License v3.0 |
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.
spqr
- SPQR 1.3.0: a production-ready system for horizontal scaling of PostgreSQL
-
Scalable PostgreSQL Connection Pooler
Transaction poolers are looking on ReadyForQuery packet and it's "in trnsaction" property like this [0]. All you need - is stick server connection on new ParameterStatus[1] packet for "SET search_path" instead of ReadyForQuery.
[0] https://github.com/pg-sharding/spqr/blob/358f816cd8a964a9c9e...
citus
- SPQR 1.3.0: a production-ready system for horizontal scaling of PostgreSQL
- Citus: PostgreSQL extension that transforms Postgres into a distributed database
-
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.
[0]: https://www.citusdata.com/
-
Vitess 18
So while searching for something like this for postgres I came across citus. Any one know how that stacks up?
https://github.com/citusdata/citus
- In-Depth Guide: Citus Technical Readme
-
Revolutionizing Database Scaling with CitusDB
References: CitusDB
- Squeeze the hell out of the system you have
- Show HN: Hydra 1.0 – open-source column-oriented Postgres
- Schema-based sharding comes to PostgreSQL with Citus
What are some alternatives?
pgbouncer-fast-switchover - Adds query routing and rewriting extensions to pgbouncer
Greenplum - Greenplum Database - Massively Parallel PostgreSQL for Analytics. An open-source massively parallel data platform for analytics, machine learning and AI.
catfs - Cache AnyThing filesystem written in Rust
yugabyte-db - YugabyteDB - the cloud native distributed SQL database for mission-critical applications.
odyssey - Scalable PostgreSQL connection pooler
vitess - Vitess is a database clustering system for horizontal scaling of MySQL.
pgagroal - High-performance connection pool for PostgreSQL
TimescaleDB - An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.
goofys - a high-performance, POSIX-ish Amazon S3 file system written in Go
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