Citus For PostgreSQL Goes Fully Open Source
Written by Nikos Vaggalis   
Monday, 04 July 2022

Citus, the PostgreSQL extension that transforms Postgres into a distributed database, has gone completely open source with latest release, version 11.

I say completely, because some parts, like the shard rebalancer, had already been open sourced in earlier versions. This version however open sources everything. 

But first a few words about Citus. As with other extensions that give PostgreSQL superpowers, Citus enhances Postgres with :

  • Distributed tables that are sharded across a cluster of PostgreSQL nodes to combine their CPU, memory, storage and I/O capacity.
  • References tables that are replicated to all nodes for joins and foreign keys from distributed tables and maximum read performance.
  • Distributed query engine routes and parallelized SELECT, DML, and other operations on distributed tables across the cluster.
  • Columnar storage that compresses data, speeds up scans, and supports fast projections, both on regular and distributed tables.
  • Query from any node enables you to utilize the full capacity of your cluster for distributed queries

 

Oracle Database and IBM Db2 both provide a shared-nothing architecture (each node in the cluster has its own compute and storage) as separate features and with Citus, PostgreSQL could do so very much too. Along with this you could also scale out horizontally by adding more servers to Citus' clusters and rebalance data from the already existing servers to the new ones without downtime.

Open sourcing, makes the Enterprise Edition's extra features available to all. These include:

  • Non-blocking shard rebalancer: moves shards without blocking modifications
  • Multi-user support: manage roles across the cluster
  • Role statements: propagates CREATE/DROP/ALTER ROLE statements
  • Grant statements: propagates GRANT/REVOKE statements
  • Row-level security: row-level security on distributed tables
  • Database owner: Propagates ALTER DATABASE ... OWNER TO
  • citus.node_conninfo: authenticate internal connections
    pg_dist_authinfo: per user authentication of internal connections
  • pg_dist_poolinfo: install pooler for internal connections
  • Tenant isolation: More control on tenants
  • citus_stat_statements: Per tenant statistics
  • COPY optimization: for large JSON/JSONB objects
  • Cluster command: more postgres compatibility

But the biggest changes v11 (v11.0.2 as of this June) has over its predecessors are:

dropping support for PostgreSQL 12

that the schema and Citus metadata are now automatically synchronized throughout the database cluster therefore you can always query distributed tables from any node in a Citus cluster.

and

the introduction of the non-blocking shard rebalancer under which Citus can move shards around by using logical replication, hence your application will only experience a brief blip in write latencies when scaling out the cluster by moving existing data to new nodes.

If you think that with those features Citus sounds more like a complete PostgreSQL version than a mere extension,you'd be aligned with the voices that call for its merging into the main PostgreSQL branch. Despite that Citus will remain as is, a separate extension.

So much power inside a single 7MB zip file source distribution...

Get 11.0.2 from Github.

 

More Information

Release notes

Related Articles

pg_ivm - Materialised Views On Steroids  

AGE - The Open Source PostgreSQL Extension For Graph Database Functionality

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


100 Prisoners And A Lightbulb
10/08/2022

I have to admit that I was unaware of this interesting problem and only discovered it due to a recent review paper. It deserves to be better known as it is a fascinating algorithmic puzzle.



Shifts & Stability In Developer Landscape
20/07/2022

There's a wealth of information in the Stack Overflow Developer Survey. After looking for changes in the programming languages used by developers the conclusion is that there's not a lot of churn. The [ ... ]


More News

pythondata

 



 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 04 July 2022 )