[Vaccination 2021] Citus: Distributed PostgreSQL as an Extension (Marco Slot)
One of the defining characteristics of PostgreSQL is its extensibility, which enables developers to add new database functionality without forking from the original project.
Citus is an open source PostgreSQL extension that transforms PostgreSQL into a distributed database. The goal of Citus is to make the versatile set of data processing capabilities in PostgreSQL available at any scale. Citus can scale transactional workloads by routing transactions across nodes, and analytical workloads by parallelizing operations across all cores in the cluster. Citus also has distributed data placement features such as co-location and reference tables to efficiently scale relational database features such as foreign keys and joins.
In this talk, you’ll learn how Citus uses the PostgreSQL extension APIs, such as the planner and executor hooks, in order to implement: a sharding layer, a distributed query planner, an adaptive query executor, and distributed transactions—all in a way that is transparent to the application without changing a line of Postgres code. We will also discuss the design and trade-offs of each component and what we learned along the way.
This talk is part of the Vaccination Database Tech Talk Seminar Series.
Marco lives in Haarlem, the Netherlands, and works as a principal software engineer at Microsoft where he leads the development of Citus as part of the Azure Database for PostgreSQL group. He also contributes to other PostgreSQL extensions such as pg_auto_failover—which provides high availability for PostgreSQL and Citus—and pg_cron, for scheduling periodic tasks inside the database. Marco worked at Citus Data from 2014 until its acquisition by Microsoft in 2019. Prior to Citus Data, Marco spent several years working on CloudFront and Route 53 at Amazon Web Services. Marco earned his PhD in cooperative self-driving cars at Trinity College Dublin, and an MSc in parallel and distributed computer systems from VU University Amsterdam.
More Info: https://db.cs.cmu.edu/seminar2021/#db4