Presented by:

69916e7f0c408c9a0c60a390d1bfc871

Asim Rama Praveen

from Pivotal Software Inc

I am a Greenplum developer. Since 2013, I have been looking into PostgreSQL source code, hacking it and learning a lot from it and the developer/user community. I look forward to continue this learning and rewarding experience for many more years to come.

No video of the event yet, sorry!

How to write a isolation/TAP test to validate crash recovery such that the server crashes after writing a commit record but before updating CLOG? How to test whether a terminate signal that arrives exactly after writing a PREPARE record is handled correctly?

It is possible to come up with many more scenarios like these where existing test frameworks such as regress/TAP/isolation fall short. A new proposal, fault injectors (https://www.postgresql.org/message-id/flat/CANXE4TdxdESX1jKw48xet-5GvBFVSq%3D4cgNeioTQff372KO45A%40mail.gmail.com), offers such fine grain control over the behavior of a running PostgreSQL process. Faults are points of interest along a code path. Actions such as ERROR/PANIC/sleep/etc. can be set for a fault using a SQL interface. When the fault is hit at run time, the process takes the associated action. Actions can be set or unset using SQL commands. The idea was discussed at 2019 unconference in Ottawa.

As part of the talk, the proposed fault injector framwork will be discussed in detail. We shall see several interesting scenarios that can be easily implemented as regress/isolation tests with fault injectors. We shall also consider one or two scenarios from audience and build a test case using faults during the talk.

Date:
Duration:
40 min
Room:
Conference:
PGConf India, 2020
Language:
Track:
Database Engine Developers
Difficulty:
Medium