We are excited to announce the general availability of CitusDB v3.0. Apart from various bug fixes and performance improvements, the major features in this release include:

Large table joins. We now support dynamic repartitioning of tables to handle joins between any number of tables, independent of their size and partitioning method. The query planner determines the ideal join strategy from statistics gathered from the partitioned tables.

Integration with PostgreSQL 9.3.2. This comes with all the new Postgres features and improvements, some of which include:

Writable foreign tables

New operators and functions to extract values from JSON types

Reduced System V shared memory requirements

Appends to existing shards via a UDF. This allows smaller, incremental updates to a distributed table by appending data to existing shards rather than creating new ones.

Support for the array_agg aggregate function. Note that we currently do not support the order-by or distinct clauses within the aggregate function.

Deletion of data based on partition key ranges via a UDF.

Installation notes

CitusDB 3.0 is based on PostgreSQL 9.3.2, and is binary incompatible with CitusDB 2.0. As a result, the install path for the new version has changed from /opt/citusdb/2.0 to /opt/citusdb/3.0 in order to allow for multiple versions of Citus DB to be installed in parallel.

If you are running CitusDB 2.0 and want to upgrade to v3.0, you will need to run pg_upgrade on your all nodes, and manually reload your distributed metadata. For specifics, please get in touch with us so we can assist with the upgrade process. If you are downloading and using CitusDB for the first time, please follow the installation instructions found in the CitusDB documentation page.