OrioleDB Multi-Version Concurrency Control
MVCC not only tracks row history but also records the search-key space. To better understand PostgreSQL MVCC, it's useful to look at some alternatives. One is zheap, which introduced out-of-place undo logging to rebuild historical row versions by storing old tuples in an undo log instead of the heap. This was done entirely at the table access method level, without modifying the index access…
OrioleDB is a PostgreSQL table access method that replaces the traditional heap structure with version-aware B-trees, enabling multi-version concurrency control (MVCC) for the database. Unlike traditional MVCC solutions, OrioleDB extends MVCC to cover the search-key space, allowing for a more comprehensive preservation of historical row versions.
This is achieved through the use of page-level undo logging, which reconstructs older B-tree leaf contents and key ranges, ensuring that old queries can still find their respective rows even as the database evolves. By using native secondary indexes, OrioleDB maintains compatibility with PostgreSQL's diverse index types and guarantees MVCC compatibility within the extensive PostgreSQL ecosystem.
Brief written by urgent.news from Dev.to's own syndicated text. Machine-written — may contain errors; check the original before relying on it.