Citus 11.0 beta is out! 🐘🦄 Read all about 11.0 beta and then give it a test drive. 🚗
Citus 11.0 beta is out! 🐘🦄 Read all about 11.0 beta and then give it a test drive. 🚗
Citus is an open source extension to Postgres that transforms Postgres into a distributed database.
Scale out Postgres by distributing your data & queries across a cluster. And it’s simple to add nodes & rebalance shards when you need to grow.
Speed up queries by 20x to 300x (or more) through parallelism, keeping more data in memory, higher I/O bandwidth, and columnar compression.
As an extension to Postgres, it’s easy to keep Citus in sync with the latest Postgres releases & stay current with all the innovations in its community.
Focus on your application and forget about your database. Run Citus in the cloud as a built-in option on Azure Database for PostgreSQL.
Good news: as of Citus 10.2, Citus now supports Postgres 14. You can learn about all of the new capabilities in the Citus 10.2 release notes. And you can always find the current Citus to PostgreSQL version compatibility in our online FAQ.
Our latest Citus open source release is spectacular. You can learn about all the new capabilities in this definitive Citus 10 release notes blog post, from columnar to single-node to the open sourcing of the shard rebalancer—and more.
With the new Citus 10 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.
Be "scale-out-ready" by sharding your data on a single Citus node, using a distributed data model from the start—so you can easily add nodes later. Or use single-node Citus as a handy way to try out Citus.
As of Citus 10, the shard rebalancer is now open source. When adding nodes to a Citus cluster, the shard rebalancer enables you to redistribute shards across nodes to better balance the data distribution and the performance of your Citus database.
With Citus you can use all your favorite Postgres features at scale, including data types, operators, functions, extensions, and indexes. Plus the reliability of Postgres and all the ongoing innovation in the Postgres community. Also, JSONB.
The Postgres ecosystem of tools, extensions, and libraries is vast. One of the reasons Citus is popular is because Citus is an extension to Postgres: therefore you get to leverage your Postgres expertise and use all of your familiar Postgres tools.
Citus offers relational database features like ACID transactions, joins, foreign key constraints, and SQL—to give you the flexibility of a relational database, at any scale.
The streaming replication feature in Postgres can be used to set up hot standby nodes with auto-failover for High Availability and read replicas for high-throughput read workloads.
Because Citus is an extension to Postgres and not a fork, Citus can easily stay current with the latest releases of Postgres, allowing you to benefit from all of the latest innovations in Postgres.
Transparently shard Postgres tables across multiple nodes to give your application more memory, compute, and disk. Which gives you parallelism, high performance, and a way to scale. Plus, you can now shard Postgres on a single Citus node, too.
Be “scale-out-ready” by sharding your data on a single Citus node, using a distributed data model from the start—so you can easily add nodes later. Or use single-node Citus as a handy way to try out Citus.
It’s simple to add nodes to Citus, whether starting with Citus on a single node, or using Citus on a distributed cluster.
When adding nodes to a Citus cluster, the open source shard rebalancer enables you to redistribute shards across nodes to better balance the data distribution and the performance of your Citus database.
Using advanced data placement and replication features, Citus gives you the fastest possible experience for relational database features like joins, foreign keys, subqueries, and stored procedures.
Like Postgres, Citus is compatible with all the popular programming languages. And for Rails and Django we’ve created gems and libraries to make it easy for your application to adapt to a sharded, distributed Postgres database.
Citus takes an incoming SQL query, plans the query for parallel execution, and pushes down the parallel computations to the nodes in the database cluster. As you add nodes, Citus automatically distributes queries to leverage all the memory and cpu cores available.
The Citus distributed query executor dynamically adapts to the type of distributed SQL query, and uses a dynamic pool of connections to each worker node to execute Postgres queries on the shards.
Citus provides atomic transactions across shards and nodes with advanced techniques like 2PC recovery and distributed deadlock detection to give you a seamless database experience.
The Postgres EXPLAIN feature creates a query plan for each query it receives and is invaluable in optimizing performance. In Citus, we’ve created a distributed EXPLAIN feature that performs the same function in the context of a distributed database.
Parallelize analytical queries across the Citus distributed database cluster for maximum performance, giving your application the memory, compute, and higher IO bandwidth of multiple nodes.
With the new Citus 10 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.
With Citus you can use a mix of distributed tables (with co-location), reference tables, and local Postgres tables—so you can optimize performance by sharding large tables; placing often-referenced tables on all the Citus nodes; and keeping the smaller tables local to the coordinator.
PostgreSQL and Citus support 40+ data types, including semi-structured data types and JSONB. Many developers cite the JSONB support in Postgres as a super effective way to store unstructured data and documents in the database.
Custom types—also called user-defined types—are a super useful Postgres feature. In a Citus distributed cluster, custom types (as well as Postgres extensions) are automatically propagated to new and existing worker nodes, without any special steps on your part.
PostGIS is an extension to Postgres that adds support for geographical objects to Postgres, allowing location queries to be run in SQL. Open source, freely available, and works with Citus.
HLL is an algorithm for the count-distinct problem and can approximate the number of distinct elements in a set. With sketch algorithms for probabilistic distincts such as HLL, you can provide deeper analytics in real-time across petabytes of data.
TopN is an open source PostgreSQL extension for calculating the most frequently occurring values in a column, and is part of the class of probabilistic distinct algorithms called sketch algorithms.
Full text search in Postgres enables you to search documents, parts of documents, and semi-structured data using regular expressions and text search from within your Citus database.
We’re on a mission to make it so you no longer have to worry about scaling your database. With Citus open source, you extend your Postgres database with superpowers like distributed tables, a distributed SQL query engine, columnar storage, and the ability to use Citus on a single node.
Convenience trumps all, and many Citus users tell us they would rather focus on their application and not on managing their database. So Citus is available in the cloud, as a
Prefer a cloud database? Learn about Citus on Azure