Citus Blog

Articles tagged: Postgres extensions

Years ago Citus used to have multiple methods for distributing data across many nodes (we actually still support both today), there was both hash-based partitioning and time-based partitioning. Over time we found big benefits in further enhancing the features around hash-based partitioning which enabled us to add richer SQL support, transactions, foreign keys, and more. Thus in recent years, we put less energy into time-based partitioning. But… no one stopped asking us about time partitioning, especially for fast data expiration. All that time we were listening. We just thought it best to align our product with the path of core Postgres as opposed to branching away from it.

Postgres has had some form of time-based partitioning for years. Though for many years it was a bit kludgy and wasn't part of core Postgres. With Postgres 10 came native time partitioning, and because Citus is an open source extension to Postgres that means anyone using Citus gets to take advantage of time-based partitioning as well. You can now create tables that are distributed across nodes by ID and partitioned by time on disk.

We have found a few Postgres extensions that make partitioning much easier to use. The best in class for improving time partitioning is pg_partman and today we'll dig into getting time partitioning set up with your Citus database cluster using pg_partman.

Keep reading
Jason Petersen

What it means to be a Postgres extension

Written byBy Jason Petersen | October 25, 2017Oct 25, 2017

Nearly 18 months ago, we open sourced our Citus distributed database and "unforked it" from PostgreSQL by refactoring Citus into a PostgreSQL extension. Seasoned PostgreSQL users likely already know of and use popular PostgreSQL extensions, such as hstore, PostGIS, and pg_stat_statements; however, we realized some of you might appreciate a recap of our journey from fork to extension and beyond.

Keep reading
Marco Slot

pg_cron: Run periodic jobs in PostgreSQL

Written byBy Marco Slot | September 9, 2016Sep 9, 2016

Running periodic jobs such as vacuuming or removing old data is a common requirement in PostgreSQL. A simple way to achieve this is to configure cron or another external daemon to periodically connect to the database and run a command. However, with...

Keep reading
Eren Basak

Scaling Out MySQL with PostgreSQL and Citus

Written byBy Eren Basak | June 10, 2016Jun 10, 2016

PostgreSQL is known for its great extensibility and powerful plugins. One particular category of extensions is Foreign Data Wrappers or FDWs. FDWs allow us to interact from within Postgres directly with other data stores such as hdfs, columnar stores, mysql, etc. Combined with Citus’ scalability features, we can even leverage them to help us scale out those data stores where might otherwise be quite difficult.

Keep reading

The following post is contributed by 8Kdata

An introduction to pg_paxos

Pg_paxos is a database level implementation of the widely renowned Paxos protocol, invented by Leslie Lamport. Pg_paxos offers a master-less (or multi-master, if you prefer) layer that can be enabled directly in the database without the need for external tools or transaction managers.

Keep reading

Page 4 of 4