OrioleDB Bridged Indexes: Guide to Architecture & Use
- OrioleDB has unveiled its bridge index feature, starting with version beta10.
- The core innovation addresses how OrioleDB, which stores table rows in a B-tree based on the primary key and manages MVCC (Multi-Version Concurrency Control) via an undo log,...
- OrioleDB indexes, conversely, are MVCC-aware, linking to rows through primary-key values and enabling direct logical updates and deletes within the index.
OrioleDB’s bridge indexes revolutionize PostgreSQL integration. This groundbreaking feature, introduced in beta10, enables the creation of non-B-tree indexes, expanding OrioleDB’s indexing capabilities. These bridge indexes facilitate a tri-level lookup path, ensuring compatibility with PostgreSQL’s indexing ecosystem while optimizing performance. The system uses an automatically added “index pointer” (iptr) and maps it to the primary-key, improving the efficacy of pgsql. With automatic and manual bridging options, users gain enhanced control. Through this innovative approach, OrioleDB maintains a heap-free environment. If you’re seeking deeper database performance insights, News Directory 3 can definitely help. Discover what’s next in OrioleDB’s optimization plans for 2025 and beyond.
OrioleDB Introduces Bridge Indexes for Enhanced PostgreSQL Integration
Updated May 30, 2025
OrioleDB has unveiled its bridge index feature, starting with version beta10. This enhancement allows the creation of indexes beyond the standard B-tree, expanding indexing capabilities within OrioleDB tables. The bridge indexes are designed to support these additional index types.
The core innovation addresses how OrioleDB, which stores table rows in a B-tree based on the primary key and manages MVCC (Multi-Version Concurrency Control) via an undo log, can integrate with PostgreSQL’s existing Index Access Methods (GIN, GiST, SP-GiST, BRIN). These methods traditionally rely on a 6-byte ctid, maintain every live row version in the index, and support inserts only, depending on VACUUM for deletion.
OrioleDB indexes, conversely, are MVCC-aware, linking to rows through primary-key values and enabling direct logical updates and deletes within the index. To maintain a heap-free environment while offering users a diverse range of non-B-tree indexes, OrioleDB has implemented a bridge index layer. This approach ensures compatibility with PostgreSQL’s indexing ecosystem while preserving OrioleDB’s architectural principles.The new feature enhances PostgreSQL index access methods.
Under the hood, the bridge operates using a virtual iptr column, an automatically added, incrementally increasing “index pointer.” Each time a column referenced by a bridged index is updated, a new iptr value is assigned, ensuring stability for indexed data. The bridge index then maps the iptr to the primary-key value, functioning as a standard OrioleDB secondary B-tree, but without using an undo log for MVCC.
PostgreSQL indexes are built on the iptr values instead of ctids, maintaining compatibility with the IndexAM API. During scans, the engine retrieves the iptr, translates it via the bridge index, and fetches the row by its primary key.A vacuum process collects obsolete iptr values, prompting the underlying IndexAM to clean up and physically deleting the pointers from the bridge index. The bridge index offers full AM compatibility.

This results in a tri-level lookup path: IndexAM index → iptr → bridge index → primary-key fetch, providing full AM compatibility at the expense of an additional index hop.
what’s next
Looking ahead, the OrioleDB team is focused on further optimizing the bridge index functionality and expanding its capabilities. The roadmap for 2025 includes enhancements aimed at reducing overhead and improving performance for various workloads. Users are encouraged to experiment with the new feature in their advancement environments to assess its impact on their specific use cases.
