This topic presents the results of an Online Transactional Processing (OLTP) workload performance test between PolarDB for PostgreSQL 16 and a comparable PostgreSQL 16 cloud-native database.
Introduction
Compared to other PostgreSQL cloud-native databases, PolarDB for PostgreSQL is optimized in the following ways to improve overall performance:
It uses leading hardware technologies, such as Optane persistent memory with a 3D XPoint storage medium, NVMe SSDs, and RoCE Remote Direct Memory Access (RDMA) networks.
Based on this hardware, it implements a complete I/O and network protocol stack that runs in user mode. This design delivers higher performance and lower latency.
It uses PolarDB Commit Sequence Number (CSN) technology to replace native PostgreSQL xid transactions with a monotonically increasing 64-bit integer. This improves OLTP performance under high concurrency.
It uses pre-read, pre-extension, and rel_size_cache technologies to reduce I/O read and write operations and improve performance.
For more information about the test steps, see Performance test method (OLTP).
Test environment and specifications
The following table shows the environment and specifications for PolarDB for PostgreSQL 16 and the comparable PostgreSQL 16 cloud-native database.
Description | PolarDB for PostgreSQL | Comparable PostgreSQL cloud-native database |
Cores + Memory | 8 cores 64 GB | 8 cores 64 GB |
Concurrency | 256 | 256 |
PostgreSQL version | 16.10 | 16.10 |
Disk performance level | PSL5 | Default configurations |
For kernel parameters, both PolarDB for PostgreSQL 16 and the comparable PostgreSQL 16 cloud-native database use default parameters.
Test workload description
Sysbench includes seven scenarios: oltp_insert, oltp_point_select, oltp_read_only, oltp_read_write, oltp_update_index, oltp_update_non_index, and oltp_write_only. The following table describes the test content for each scenario.
Parameter | Scenario | Test content |
Write scenario | oltp_insert | Insert a table. |
oltp_update_index | Updates an indexed table. | |
oltp_update_non_index | Updates a non-indexed table. | |
oltp_write_only | Mixed test of inserting, updating, and deleting data in a table. | |
Read scenario | oltp_point_select | Point queries. |
oltp_read_only | Point queries and range queries. | |
Read/write mix | oltp_read_write | Mixed test of oltp_write_only and oltp_read_only. |
Metric
Transactions per second (TPS): the number of transactions that the database executes per second, based on the number of successful COMMITs.
Test data volume
The following table shows the data volume used in this experiment.
Parameter | Description |
Number of tables | 8 |
Number of rows | 64,000,000 |
Total data volume | 128 GB |
Performance results
Write scenarios

Stress testing scenario
PolarDB for PostgreSQL 16
Comparable PostgreSQL 16 cloud-native database
oltp_insert
111618.70
15064.65
oltp_update_index
77647.89
13310.46
oltp_update_non_index
78112.42
13297.03
oltp_write_only
24602.97
4932.72
Read scenarios


Stress testing scenario
PolarDB for PostgreSQL 16
Comparable PostgreSQL 16 cloud-native database
oltp_point_select
220782.88
36460.18
oltp_read_only
8653.15
1628.1
Read/write mix scenario

Stress testing scenario
PolarDB for PostgreSQL 16
Comparable PostgreSQL 16 cloud-native database
oltp_read_write
5073.52
911.26