Beta 7 of OrioleDB, a high-performance storage engine for PostgreSQL

The beta version of the OrioleDB beta7 storage engine has been released, and new benchmark results have been published, demonstrating a significant performance improvement over traditional PostgreSQL. The beta7 version includes optimizations aimed at improving the work with multi-threaded workloads and accelerating read and write operations. The first stable release of OrioleDB is planned for 2025. The engine is written in C and is distributed under the PostgreSQL license, similar to the BSD and MIT licenses.

The OrioleDB project develops an alternative storage engine for PostgreSQL, designed to overcome the limitations of the standard storage engine and improve the overall efficiency of the system. For example, OrioleDB eliminates the need for periodic VACUUM operations for garbage collection by implementing a Multi-Version Concurrency Control (MVCC) mechanism based on undo logs that operate at the level of individual blocks and rows, as well as a system for automatically merging pages containing data. OrioleDB also uses 64-bit transaction identifiers, which solves the problem of counter overflows.

To simplify use in distributed systems and parallelize operations, OrioleDB has a row-level transaction WAL log. When performing an UPDATE operation, in-place data replacement is supported (without freeing the current record and creating a new one), which has a positive effect on performance. OrioleDB also implements such features as reading data pages without using locks, directly linking pages in RAM with pages in persistent storage, using the CoW (copy-on-write) mechanism when fixing checkpoints to create consistent snapshots at any point in time, and a compressed data storage mode using the ZSTD algorithm.

Among the limitations present in the seventh beta version of OrioleDB, it is noted that only indexes in the B-tree format can be used (in the future, support for all types of PostgreSQL indexes will appear), as well as the lack of support for pre-prepared transactions (PREPARE TRANSACTION) and the "REINDEX" command in "CONCURRENTLY" mode. OrioleDB is implemented as a pluggable extension, requiring changes to the main PostgreSQL code base.

In TPC-C benchmarks, which simulate real-world transaction processing workloads, OrioleDB beta 7 showed significant performance improvements over the stock PostgreSQL engine. Testing was conducted with varying numbers of concurrent clients to assess the scalability and performance of the system under increasing load.

In tests evaluating transaction throughput, the OrioleDB engine achieved higher throughput measured in transactions per minute (tpmC). As the number of clients increased, OrioleDB's performance continued to grow linearly, while the PostgreSQL Heap engine tended to stagnate and even decline after a certain threshold.

 Beta 7 of OrioleDB, a high-performance storage engine for PostgreSQL
 Beta 7 of OrioleDB, a high-performance storage engine for PostgreSQL
 Beta 7 of OrioleDB, a high-performance storage engine for PostgreSQL

In response time tests, the average transaction response time in OrioleDB was noticeably lower than in PostgreSQL. Thus, OrioleDB-based systems can process more transactions in the same amount of time, while providing faster query service. When measuring resource usage, the OrioleDB engine demonstrated more efficient CPU and memory usage due to optimized resource management.

Source: opennet.ru

Buy reliable hosting for sites with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster