Serializable Snapshot Isolation in PostgreSQL
In this paper, the authors describe their experience implementing PostgreSQL’s new serializable isolation level. It is based on the recently-developed Serializable Snapshot Isolation (SSI) technique. This is the first implementation of SSI in a production database release as well as the first in a database that did not previously have a lock-based serializable isolation level. They reflect on their experience and describe how they overcame some of the resulting challenges, including the implementation of a new lock manager, a technique for ensuring memory usage is bounded, and integration with other PostgreSQL features. They also introduce an extension to SSI that improves performance for read-only transactions.