Pavlo Golub

Bio

Pavlo is a PostgreSQL expert and developer at Cybertec, working with postgres for {{ CURRENT_YEAR - 2002 }} years. 🐘

Talk Description: Professional PostgreSQL scheduling made easy

The talk firstly introduces all appropriate levels of database scheduling regardless of the vendor:
β€’ Built-in Schedulers
β€’ System Schedulers
β€’ and then focuses on PostgreSQL and the means it provides.

Then we will throw some light onto the meaning and importance of critical approaches:
β€’ SQL (database) level tasks
β€’ shell (system) level tasks
β€’ predefined tasks (depending on a scheduler)
of course, I will describe different conceptions of scheduled tasks:
β€’ usual cron syntax, e.g., β€œAt 00:05 in August.” [5 0 * 8 *]
β€’ non-standard cron by event, e.g., system reboot [@reboot]
β€’ interval syntax, e.g. [@every 1h 15m], [@after 0h 15m]
β€’ signaled tasks, when a user or a monitoring system gives an order for execution

Postgres community has already developed several tools in that area. Some popular common options will be highlighted together with the problems that different scheduling approaches have:
β€’ pgAgent
β€’ jpgAgent
β€’ pg_cron
β€’ pgBucket (runseven)
β€’ pgAutomator (discontinued?)

We will discuss the two different architecture approaches for a PostgreSQL database scheduler:
β€’ built-in aka server background worker
β€’ external aka client worker

To overcome some of these problems, a new Open Source tool from Cybertec developed by me, called pg_timetable, is introduced and explained in detail.
It offers the simplest possibly entry into exhaustive Postgres scheduling combined with system tasks (cron on steroids). Also will be discussed advanced topics like transaction support, cross-cluster tasks, and cross-platform tasks.