Skip to content

orioledb

OrioleDB, the next generation transactional engine

orioledb : OrioleDB, the next generation transactional engine

Overview

ID Extension Package Version Category License Language
2910 orioledb orioledb 1.10 FEAT Apache-2.0 OR PostgreSQL C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--sLd-r No Yes Yes Yes yes no
Upstream beta19 installs SQL 1.10 and requires patched kernels patches16_49/patches17_22/patches18_3. Retained Pigsty recipes, source archives and local RPM/DEB matrix use beta19 (package 1.10). Public beta, not recommended upstream for production; repository publication is checked separately.

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT PIGSTY 1.10 18 17 16 15 14 orioledb -
RPM PIGSTY 1.10 18 17 16 15 14 orioledb-$v -
DEB PIGSTY 1.10 18 17 16 15 14 orioledb-$v -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
el8.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
el9.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
el9.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
el10.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
el10.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
d12.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
d12.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
d13.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
d13.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
u22.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
u22.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
u24.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
u24.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
u26.x86_64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A
u26.aarch64 PIGSTY 1.10 PIGSTY 1.10 PIGSTY 1.10 N/A N/A

Source

orioledb-beta19.tar.gz postgres-patches16_49.tar.gz postgres-patches17_22.tar.gz postgres-patches18_3.tar.gz

pig build pkg orioledb;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install orioledb;		# install via package name, for the active PG version

pig install orioledb -v 18;   # install for PG 18
pig install orioledb -v 17;   # install for PG 17
pig install orioledb -v 16;   # install for PG 16

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'orioledb';

Create this extension with:

CREATE EXTENSION orioledb;

Usage

Sources:

OrioleDB is a new storage engine for PostgreSQL that provides modern approaches to database capacity, capabilities, and performance. It uses undo log-based MVCC, copy-on-write checkpoints, and row-level WAL to eliminate bloat and the need for VACUUM.

Configuration

Add to postgresql.conf (requires restart):

shared_preload_libraries = 'orioledb.so'

Then enable the extension:

CREATE EXTENSION orioledb;

Creating Tables

Use the USING orioledb clause to create tables with the OrioleDB storage engine:

CREATE TABLE my_table (
    id serial PRIMARY KEY,
    name text,
    value numeric
) USING orioledb;

Use ordinary DML on OrioleDB tables, subject to the documented compatibility limits:

INSERT INTO my_table (name, value) VALUES ('test', 42);
SELECT * FROM my_table WHERE id = 1;
UPDATE my_table SET value = 100 WHERE id = 1;
DELETE FROM my_table WHERE id = 1;

Collation Requirements

OrioleDB tables support only ICU, C, and POSIX collations. To avoid specifying COLLATE on every text field, create the database with an appropriate default:

CREATE DATABASE mydb LOCALE 'C' TEMPLATE template0;
-- OR
CREATE DATABASE mydb LOCALE_PROVIDER icu ICU_LOCALE 'en' TEMPLATE template0;

Key Benefits

  • No bloat: Undo log-based MVCC means old tuple versions do not bloat main storage
  • No VACUUM needed: Page-merging and undo log reclaim space automatically
  • No wraparound problem: Native 64-bit transaction identifiers
  • Lock-less page reading: In-memory pages linked directly to storage pages
  • Row-level WAL: Compact write-ahead logging suitable for parallel apply

Limitations

  • Public beta status – recommended for testing, not production
  • Requires a patched PostgreSQL build from orioledb/postgres
  • Only ICU, C, and POSIX collations are supported

Version Notes

OrioleDB beta17 uses extension SQL version 1.9 and patched PostgreSQL bases 16.15, 17.11, and 18.6. It adds concurrent creation/rebuilding of native btree indexes, cross-major upgrade support, page checksums, and parallel index/bitmap scans, together with recovery and DDL correctness fixes. Follow the beta17 binary and storage compatibility instructions before upgrading; a new SQL version does not make the engine usable on an unpatched PostgreSQL server.