The seventh beta version of OrioleDB, a high-performance storage engine for PostgreSQL

The beta version of the OrioleDB storage engine, beta7, has been released along with new test results demonstrating a significant performance increase compared to traditional PostgreSQL. Version beta7 introduced optimizations aimed at improving multi-threaded workload handling and speeding up read and write operations. The first stable release of OrioleDB is planned for 2025. The engine is written in C and is distributed under a PostgreSQL-like license similar to BSD and MIT licenses.

The OrioleDB project develops an alternative storage engine for PostgreSQL, designed to overcome the limitations of the standard storage mechanism and enhance overall system efficiency. 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 an automatic page merging system containing data. OrioleDB also uses 64-bit transaction identifiers, addressing the issue of counter overflow.

To simplify usage in distributed systems and parallelize operations in OrioleDB, transaction WAL logging is organized at the row level. When performing an UPDATE operation, data can be replaced in place (without releasing the current record and creating a new one), positively impacting performance. OrioleDB also features capabilities such as reading data pages without locks, direct linking of pages in RAM to pages in persistent storage, employing a copy-on-write (CoW) mechanism when saving checkpoints to create consistent snapshots at any time, and a mode for storing data in compressed format using the ZSTD algorithm.

Among the limitations present in the seventh beta version of OrioleDB is the ability to use only B-tree format indexes (support for all PostgreSQL index types will be available in the future), as well as the lack of support for prepared transactions (PREPARE TRANSACTION) and the "REINDEX" command in "CONCURRENTLY" mode. OrioleDB is implemented as a plug-in extension requiring changes to the core PostgreSQL codebase.

In TPC-C performance tests, which simulate a transactional processing load in real conditions, the seventh beta version of OrioleDB demonstrated significant superiority over the standard PostgreSQL engine. Testing was conducted with varying numbers of concurrently working clients to evaluate the scalability and performance of the system under increased load.

In tests assessing 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 PostgreSQL's Heap engine showed a tendency to stagnate and even decline after a certain threshold.

The seventh beta version of OrioleDB, a high-performance storage engine for PostgreSQL
The seventh beta version of OrioleDB, a high-performance storage engine for PostgreSQL
The seventh beta version of OrioleDB, a high-performance storage engine for PostgreSQL

In response time tests, the average transaction response time in OrioleDB was notably lower compared to PostgreSQL. Therefore, systems based on OrioleDB can handle more transactions in the same time period while providing faster query servicing. When measuring resource utilization, the OrioleDB engine demonstrated more efficient use of CPU and memory, thanks to optimized resource management.

Source: opennet.ru

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