Learn how to scale out Postgres with the Citus open source extension
Citus distributes your Postgres database across multiple nodes and parallelizes your queries and transactions. The combination of parallelism, keeping more data in memory, and higher I/O bandwidth often leads to dramatic speed ups. In this chart, we show a benchmark SQL query running ~40x faster with an 8-node Citus cluster vs. a single Postgres node.
By introducing new Postgres table types—distributed tables and reference tables—Citus makes it possible to distribute your data and queries across multiple nodes. In addition to the new table types, the Citus architecture includes a distributed Postgres query planner and an adaptive, distributed query executor. Distributed transactions are also supported. For many data-intensive use cases, scaling out Postgres with Citus can drive significant performance speed-ups.
Citus is an open source extension to Postgres (not a fork.) So when you use Citus, you’re still using Postgres under the covers, along with the Citus extension on top. To your application, running on a Citus distributed database is like running on top of a single Postgres node. And because Citus is an extension, it’s easy for us to keep Citus current with the latest Postgres releases—plus you get the performance benefits of horizontal scale, while still being able to leverage your familiar SQL toolset and your Postgres expertise.
One of the use cases that Citus is a good fit for is called “mixed transactional and analytical workloads.” Because Citus scales out Postgres horizontally—parallelizing your queries, allowing you to keep more data in memory, and giving you higher I/O bandwidth—Citus can meet the demanding performance requirements of these mixed workloads. So you can simplify your architecture by using a single database for your app’s transactional and analytical workloads, even for data-intensive applications. And you no longer have to accept a lag between when events occur and when your analytics dashboards can query the fresh data.
Find out more about the Citus concepts, architecture, cluster management, APIs, use cases, & performance tuning.
See how Citus scales out Postgres and parallelizes your workloads via these YouTube videos. Tip: turn on captions.
Learn how to use Citus by using sample data in these short tutorials. For time series data, check out the use case guide.
You can download and install Citus open source packages for Docker, Ubuntu, Debian, Fedora, CentOS, and Red Hat via these simple steps.
You can stand up a Citus cluster in minutes with the Hyperscale (Citus) option in the Azure Database for PostgreSQL managed service.
Using sharding and replication, the Citus open source extension to Postgres distributes your data and queries across multiple servers in a database cluster. Because Citus uses a coordinator as the single entry point for applications, your app can interact with the Citus cluster as if it were a single Postgres server.
Citus is available as an open source download and in the cloud as a managed service. The Hyperscale (Citus) option in Azure Database for PostgreSQL makes it easy to stand up a managed Citus cluster in minutes.
What’s New
Citus 9.5 extension to Postgres
What’s New
Citus 9.4 extension to Postgres
What’s New
Citus 9.3, the extension that scales out Postgres horizontally
What’s New
Citus 9.2 speeds up large scale HTAP workloads on Postgres
Blog
Using custom types with Citus & Postgres
Blog
How the Citus distributed query executor adapts to your Postgres workload
Blog
Making Postgres stored procedures 9X faster in Citus
Blog
Delivering 45x faster percentiles with Postgres, Citus, &