Serializable Snapshot Isolation in PostgreSQL
Dan R. K. Ports, Kevin Grittner

TL;DR
This paper details the implementation and evaluation of PostgreSQL's new serializable isolation level based on Serializable Snapshot Isolation (SSI), highlighting its performance benefits and integration challenges in a production environment.
Contribution
First implementation of SSI in a production database without prior lock-based serializable support, including new lock management and performance improvements for read-only transactions.
Findings
Achieves near snapshot isolation performance
Outperforms two-phase locking on read-heavy workloads
Successfully integrates SSI with existing PostgreSQL features
Abstract
This paper describes our 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. We reflect on our experience and describe how we 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. We also introduce an extension to SSI that improves performance for read-only transactions. We evaluate PostgreSQL's serializable isolation level using several benchmarks and show that it achieves performance only slightly below that of snapshot isolation, and significantly outperforms the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Cloud Computing and Resource Management · Advanced Data Storage Technologies
