Citus 12.1 is out! Now with PG16 Support. Read all about it in Naisila’s 12.1 blog post. 💥
The Citus database is an extension to Postgres that gives you all the greatness of Postgres at any scale—whether on a single node or a distributed cluster. Available as open source and in the cloud as Azure Cosmos DB for PostgreSQL.
Citus Distributed Database Features
|Citus Open Source Citus Open Source||Citus on Azure Citus on Azure|
| Relational database semantics |
Citus is Postgres, which means we offer relational database features like ACID transactions, joins, foreign key constraints, and SQL coverage.
| Horizontal scalability & sharding |
Citus is an extension to Postgres that enables you to scale out Postgres across multiple nodes, giving your Postgres database a much larger memory, compute, and disk footprint than on a single-node. And increasing performance in a big way. You can now shard Postgres on a single node, too.
| Distributed SQL engine |
Distributed query planner and executor that parallelizes queries across shards, enabling massive parallelism and efficient resource utilization.
| Extension to Postgres |
Citus is not a fork, rather we use PostgreSQL’s extension APIs to scale out. We give you trusted, familiar Postgres.
| Rich data types & Postgres extensions |
PostgreSQL and Citus support 40+ data types, including semi-structured data types and JSONB. Popular Postgres extensions frequently used with Citus include Patroni, HyperLogLog (HLL), PostGIS, TopN, hstore, pg stat statements, dblink, plpgsql, uuid ossp, ltree, pgvector, & more.
| Columnar storage |
With the new Citus columnar feature, you can compress regular Postgres tables and/or distributed tables to reduce disk footprint, reduce I/O bandwidth needs, and speed up analytics queries.
| Compatible with popular programming languages, includes Rails & Django support |
Probabilistic distincts (sketch algorithms)
| Shard rebalancer |
When adding nodes to a Citus cluster, the shard rebalancer enables you to redistribute shards across old and new nodes to better balance the data distribution and the performance of your Citus database. The non-blocking shard rebalancer is now 100% open source, too. Also included are progress tracking for the shard rebalancer and parallel shard rebalancing.
| Access controls |
Granular access controls in Citus enable you to limit capabilities to certain types of users to control user access and reduce risk.
| User management |
Citus automatically manages user creation for you across the cluster, and enables fine-grained control over inter-node authentication using certificates or other methods.
| HA Support with Patroni |
Patroni automatically discovers and registers Citus worker nodes on the coordinator and handles failovers by replacing addresses of workers. It also helps to make controlled switchovers of worker nodes transparent by pausing client connections so that applications don't experience errors.
| HA Support in Azure Cosmos DB for PostgreSQL |
High availability is available in Azure Cosmos DB for PostgreSQL. Enable high availability to have standby replicas of every node with automatic failover in your server group.
| Simple provisioning & easy to scale out |
In Azure Cosmos DB for PostgreSQL, you can provision a cluster in just a few clicks. Adding more nodes & increasing memory, compute, and disk is simple, too.
| Fully-managed database as a service |
Citus is available in the cloud as Azure Cosmos DB for PostgreSQL, a fully-managed database as a service. Available in most Azure regions, Azure Cosmos DB for PostgreSQL includes automated backups, point in time recovery, automated health checks, & automated monitoring.
| Citus Security features in the cloud |
Azure Cosmos DB for PostgreSQL includes 2FA, encryption at rest and in flight, firewall rules, private link, and of course continual review of security vulnerabilities.