Show HN: OrioleDB Beta12 Features and Benchmarks

orioledb.com

53 points by akorotkov 5 days ago

Hey HN, I'm the creator of OrioleDB, an extension for PostgreSQL that serves as a drop-in replacement for the default Heap storage engine. It is designed to address scalability bottlenecks in PostgreSQL's buffer manager and reduce the WAL, enabling better utilization of modern multi-core CPUs and high‑performance storage systems.

We are getting closer to GA. This release includes:

- An index bridge to support all indexes that Heap supports

- Support for rewinding recent changes in the database.

- Tablespaces support

- Fillfactor support

- An orioledb_tree_stat() function for space utilization statistics

- Support for tables with more than 32 columns.

We also show several performance improvements using the TPC-C benchmarks. Overall, OrioleDB is much faster than Heap, also outperforming other Postgres providers.

We would love more people testing OrioleDB. The fastest way to do that is to use the docker image provided:

    docker run -d --name orioledb -p 5432:5432 orioledb/orioledb
Read the full release here:

https://www.orioledb.com/blog/orioledb-beta12-benchmarks

atombender 4 hours ago

Have you gotten any feedback from the core Postgres team about whether any of the improvements might make it into the mainline, or do you think it will remain an extension for ever?

I haven't studied the design super closely, so there might be shortcomings or design compromises that aren't immediately obvious. But from where I'm sitting the performance improvements seem so extreme that it's hard to see why anyone would not want to replace the current MVCC heap with this.

An undo log-based system is essentially the way Oracle structures its core row storage, with each row mutated in place and containing a header listing the chain of transactions currently holding different versions of it. This means you avoid the bloat that comes with Postgres-style MVCC, by sacrificing some read performance whenever someone needs to read a row that has been mutated but not committed, as the reader has to follow the chain to find the old committed version in the undo log. That's always seemed to me to be a better design. Moving the dead tuple bloat away from the main heap and into a separate undo log makes a lot of sense.

But I wonder if the core team, which is famously quite conservative about introducing big changes, sees this as too different to adopt as a replacement for what's been the state of the art since forever.

akorotkov 5 days ago

Additionally, OrioleDB beta12 features a new fastpath tree search, which can accelerate workloads with intensive key-value lookups by up to 20%. Stay tuned for a new blog post about this later this week.

ksec 12 hours ago

Hopefully this will be part of the official Postgres soon(ish), along with what Planetscale is doing we could finally have an Open Source SQL DB system that is powerful without too much customisation.

rickette 9 hours ago

Would Postgres FTS (ts_vector) benefit from this storage engine?

ololobus 21 hours ago

Does it require core patches or I can install it into the standard upstream Postgres? Asking because, afaik, it did, but it might that something has changed already.

kabes a day ago

Awesome. How far away would you say are you from a stable orioledb as postgres extension?

znpy 19 hours ago

Great! How does it fit into the landscape?

Can i used it in conjunction with other extensions, like the recently announced pgactive from amazon?

jfbaro a day ago

Great work!!