orioledb
orioledb : OrioleDB, the next generation transactional engine
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 2910 | orioledb
|
orioledb
|
1.6 |
FEAT
|
PostgreSQL
|
C
|
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--sLd-r
|
No
|
Yes
|
Yes
|
Yes
|
yes
|
no
|
| Relationships | |
|---|---|
| See Also | pg_mooncake
citus_columnar
pg_analytics
pg_duckdb
timescaledb
citus
pg_strom
|
special case: this extension only works on patched postgres kernel: oriolepg, 1.6-beta14
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PIGSTY
|
1.6 |
18
17
16
15
14
|
orioledb |
- |
| RPM | PIGSTY
|
1.6 |
18
17
16
15
14
|
orioledb_$v |
oriolepg_$v |
| DEB | PIGSTY
|
1.6 |
18
17
16
15
14
|
oriolepg-$v-orioledb |
oriolepg-$v |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
el8.x86_64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
el8.aarch64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
el9.x86_64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
el9.aarch64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
el10.x86_64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
el10.aarch64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
d12.x86_64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
d12.aarch64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
d13.x86_64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
d13.aarch64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
u22.x86_64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
u22.aarch64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
u24.x86_64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
u24.aarch64
|
MISS
|
PIGSTY 1.6
|
MISS
|
MISS
|
MISS
|
Source
pig build pkg orioledb; # build rpm/debInstall
Make sure PGDG and PIGSTY repo available:
pig repo add pgsql -u # add both repo and update cacheInstall this extension with pig:
pig install orioledb; # install via package name, for the active PG version
pig install orioledb -v 17; # install for PG 17Config this extension to shared_preload_libraries:
shared_preload_libraries = 'orioledb';Create this extension with:
CREATE EXTENSION orioledb;Usage
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;All standard PostgreSQL operations work on OrioleDB tables:
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