citus
pg_auto_failover
Our great sponsors
citus | pg_auto_failover | |
---|---|---|
61 | 14 | |
9,677 | 1,029 | |
2.9% | 3.2% | |
9.5 | 6.4 | |
7 days ago | 2 months 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.
pg_auto_failover
- 11 Years of Hosting a SaaS
-
Why PostgreSQL High Availability Matters and How to Achieve It
pg_auto_failover makes it an absolute breeze. I cannot understand how it's not mentioned in the article.
I've been runnning it for 3 years with great success - https://github.com/hapostgres/pg_auto_failover/discussions/6...
-
Can someone share experience configuring Highly Available PgSQL?
Simplified and probably OK: pg_auto_failover - One Monitor/Witness node and minimum services otherwise. Good documentation to get started and not nearly as complex as Patroni.
- Just Use Postgres for Everything
-
The C++ Asynchronous Framework
This is /extremely/ uncharitable. It depends more on the project.
For example, both Go and .NET are very well written with comprehensible documentation. Many projects have also been absorbed by the Apache Foundation or other FOSS initiatives.
Every FANG has boat loads of teams working on umpteen different open source packages. The quality naturally varies.
Let me pick two more esoteric projects as a point of comparison.
Yandex Odyssey (https://github.com/yandex/odyssey) an advanced multi-threaded PostgreSQL connection pooler and request router. Figuring out how exactly and when to use this is not quite clear. There is no "getting started" guide for this package. There is barely any explanation for how it works or what it does.
pg_auto_failover (https://github.com/citusdata/pg_auto_failover) run by Citus (owned by Microsoft) monitors and manages automated failover for a Postgres cluster. This repo even has diagrams explaining the workflow and complete instructions.
-
Vitess 11
I completely missed the news that Microsoft acquired Citrus back in 2019.
I noticed in their MIT like license it referred to Microsoft and way confused until I learned they were acquired.
https://github.com/citusdata/pg_auto_failover/blob/master/LI...
- An early look at Postgres 14 performance and monitoring improvements
-
Citus 10 brings columnar compression to Postgres
Not multi-master, but pg_auto_failover looks to be a very nice solution for HA, and one that is operationally simple to manage: https://github.com/citusdata/pg_auto_failover
-
PostgreSQL High availability
Also check https://github.com/citusdata/pg_auto_failover
What are some alternatives?
patroni - A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes
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.
vitess - Vitess is a database clustering system for horizontal scaling of MySQL.
TimescaleDB - An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.
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.
PolarDB-for-PostgreSQL - A cloud-native database based on PostgreSQL developed by Alibaba Cloud.
psycopg2 - PostgreSQL database adapter for the Python programming language
flyctl - Command line tools for fly.io services
orchestrator - MySQL replication topology management and HA
postgresql_cluster - PostgreSQL High-Availability Cluster (based on "Patroni" and DCS "etcd" or "consul"). Automating with Ansible.