OrioleDB Brings Index-Level MVCC to PostgreSQL with Page-Level Undo Logs
OrioleDB is a PostgreSQL table access method that replaces the traditional heap storage with index-organized, version-aware B-trees, storing complete rows in a primary B-tree. Unlike standard PostgreSQL, which retains old heap tuples and index entries until VACUUM removes them, OrioleDB uses page-level undo logs to reconstruct historical B-tree leaf contents and key ranges. This approach addresses a fundamental MVCC challenge: preserving not just old row values but also where older queries would have located those rows in secondary indexes. Native secondary indexes in OrioleDB store the secondary key alongside the primary key, requiring both B-trees to participate in snapshot visibility rather than relying solely on heap-level version tracking. Because PostgreSQL's broader ecosystem includes index types like GIN, BRIN, and GiST that do not natively understand this version model, OrioleDB employs a compatibility layer called a bridge index.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in