Citus 11 is out! Now 100% open source. Read all about it in Marco’s release blog. 💥
With Citus, you can scale Postgres with superpowers like distributed tables, distributed SQL engine, columnar, & more.
You can also spin up a Citus cluster in the cloud on Azure, with Hyperscale (Citus) in Azure Database for PostgreSQL.
Scale Postgres by distributing data & queries. You can start with a single Citus node, and simply add nodes & rebalance shards in order to grow.
Reduce your infrastructure headaches by using a single database for both your transactional and analytical workloads.
Speed up queries by 20x to 300x (or more) through parallelism, keeping more data in memory, higher I/O bandwidth, and columnar compression.
Download and use Citus open source for free. You can manage Citus yourself, embrace open source, and help us improve Citus via GitHub.
Citus is an extension (not a fork) to the latest Postgres versions, so you can use your familiar SQL toolset & leverage your Postgres expertise.
Focus on your application and forget about your database. Run Citus in the cloud as a
When querying a Citus cluster, most applications query the Citus coordinator, as depicted in the diagram. However as of Citus 11, you can now send queries to any of the nodes in the cluster (excluding schema changes, those still go to the coordinator.) The Citus node you connect to will transform the SQL queries & route the transformed queries to the correct shards. In this animation, the
Side-By-Side Performance Comparison
Watch this demo to see how Citus gives this application ~20X faster transactions and
Citus 11.0 is out! With new cluster activity views and the ability to query from any node. Now 100% open source.
Citus Con: An Event for Postgres is a wrap! If you missed the event, you can still find and watch all 38 recorded talks online.
This deep dive post on performance benchmarking with HammerDB features a whopping 2.0 million NOPM result for Citus.
|Distributed query engine||Distributed query planner & adaptive executor that parallelizes queries across shards and nodes.|
|Distributed tables||Shard tables across a cluster of Postgres nodes to leverage their combined CPU, memory, disk, and I/O.|
|Reference tables||Replicate tables to enable JOINs, foreign keys from distributed tables, & faster reads.|
|Co-located shards||Optimize performance for joins and foreign keys by co-locating shards of distributed tables.|
|Parallel distributed SELECT||Parallelize analytical queries across the distributed cluster for maximum performance.|
|Parallel distributed DML||Transform data inside the database with parallelized update, delete, & insert..select commands.|
|Full SQL query routing||Route complex SQL queries and transactions across a cluster with minimal overhead.|
|Distributed transactions||Perform complex transactions, stored procedures, and more in atomic distributed transactions.|
|Parallelized COPY||Employ parallel indexing, constraint checking, and disk writes to speed up data loading streams.|
|Columnar storage||Compress local and/or distributed tables to save on storage, reduce I/O bandwidth, & speed up analytics queries.|
|Sharding||Transparently distributes tables across Citus worker nodes, to enable scale out & improve performance.|
|Easy to add nodes||Easy to add more Citus nodes, whether starting with Citus on a single node or a multi-node cluster.|
|Shard rebalancer||Redistribute shards across nodes in a Citus cluster. Online, non-blocking, fully open source.|
|Single-node Citus||Be scale-out ready by starting (or testing) on a single Citus node. So you can easily add nodes later.|
|Distributed Postgres cluster||Combine the compute, memory, disk, & IO of multiple database nodes into one database.|
|Tenant isolation||Isolate shards for large SaaS tenants to avoid negatively impacting performance for other SaaS tenants.|
|Sharding flexibility||Tooling to change how data is distributed: change shard count, undistribute tables, change distribution column.|
|Query from any node||Automatic metadata syncing (added in Citus 11) means you can now query from any node if you need to reach higher query throughput.|
|Open Source||PostgreSQL & Citus are built on one of the most collaborative open source ecosystems.|
|Packaged as an extension||Citus is an extension to Postgres (not a fork)—so when you use Citus, you’re also using Postgres.|
|Postgres tooling & ecosystem||Rich ecosystem of Postgres tooling & integrations.|
|Joins||One of the reasons (along with foreign keys & constraints) that teams who need scale want to keep using Postgres.|
|Indexes||Postgres offers different index types: B-tree, GIN, BRIN, GiST, as well as partial indexes.|
|Stored procedures||Ability to run functions within the database to execute complex transactions efficiently.|
|UPDATE/DELETE||Staple of relational databases: the ability to update (modify) or delete older data.|
|Constraints||Constraints are a powerful construct to enforce rules and keep invalid data out of your Postgres database.|
|Time Partitioning||Citus works with native Postgres range partitioning, and also provides tooling for easily managing time partitions.|
|JSON & JSONB||JSON and JSONB data types are a popular way to store & index semi-structured data in Postgres.|
|Rich datatypes||Citus works well with the 40+ data types in Postgres, plus the ability to create custom, user-defined types.|
|Postgres extension compatibility||Popular extensions often used with Citus: PostGIS, HLL, pg_cron, pg_stat_statements, pg_partman, t-digest, TopN, & more.|
|Citus on Azure||Hyperscale (Citus) is a built-in option in the Azure Database for PostgreSQL managed service.|
|Postgres versions & upgrades||Postgres 11, 12, 13, & 14 all available. Major version upgrades available with minimal downtime.|
|Basic tier||Be scale-out ready by starting small on a single Hyperscale (Citus) node. Also handy for testing.|
|Scaling up||Easy to increase compute/memory and storage on your Hyperscale (Citus) coordinator & worker nodes.|
|Scaling out||Simple as moving a slider to add more nodes to your Hyperscale (Citus) cluster.|
|High Availability option||HA uses standby replicas for all nodes in a cluster, with streaming replication & automated failover.|
|Automated backup & restore||Automated backups are stored in multiple Azure availability zones.|
|Monitoring & alerts||Automated monitoring, configurable metrics dashboard, plus alert setup through Azure Monitor.|
|Security controls||Encryption at rest & in flight, firewall rules, and 2FA. Also private link.|
|Pay as you go or prepay||Pay-as-you-go pricing, or prepay with reserved capacity discounts.|
|Azure ecosystem integrations||Azure Data Factory, Azure Monitor, Azure Service Health, Azure Data Studio. Also, Azure Stream Analytics (in preview).|
|Read replicas||Read-only replicas of a Hyperscale (Citus) cluster in same region. Fork/PITR also available.|
|Managed PgBouncer||Outsource PgBouncer administration to Azure.|
|Scheduled maintenance||You can schedule a preferred day of week & 30-min maintenance window for each server group.|
|Getting Started tips||Getting Started page includes a curated set of docs, videos, tutorials, & blog posts to help get you started.|
|Packages||Download & installation instructions for setting up Citus on a single-node or on a multi-node cluster.|
|Documentation||Open source Citus docs cover concepts, architecture, admin, tutorials, use case guides, & troubleshooting.|
|Videos||Playlist of demos & videos can also be found in the Learn Your Way blade on the Citus Getting Started page.|
|Citus Public Slack||Citus Slack is for community Q&A about the Citus extension to Postgres.|
|Citus Blog||Citus Blog publishes engineering posts about Postgres, Citus, sharding, & distributed databases.|
|Azure Database for PostgreSQL Blog||Sister blog on Microsoft TechCommunity where we blog about Citus on Azure & our Postgres managed service.|
|Citus Newsletter||Subscribe to the monthly newsletter with ~12K subscribers, for useful tech content on Postgres & Citus.|
|GitHub repo||Open source GitHub repo contains the source code, open issues, changelogs, README, & more.|
|Citus Con Videos||This playlist includes the 13 user and developer talks from the inaugural Citus Con: An Event for Postgres.|
Not every application benefits from distributing Postgres, parallelizing queries, compressing tables via columnar, and the ability to scale from a single node to a distributed database cluster. But many do. Some popular Citus use cases: multi-tenant SaaS applications, real-time analytics, & time series.