This page shows TPS (Transactions Per Second) results comparing the cluster endpoint against the primary node endpoint for PolarDB for PostgreSQL, using a read-only OLTP workload.
For test steps, see Performance testing method (OLTP).
How it works
The cluster endpoint improves read throughput in two ways:
Read/write splitting: Write requests go to the primary node. Read requests are distributed across the primary and read-only nodes based on each node's current load, measured by the number of active (unfinished) requests.
Transaction splitting: Read requests inside a transaction are routed to read-only nodes while maintaining read-write consistency. For details, see Transaction splitting.
Prerequisites
Before you begin, ensure that you have:
A PolarDB PostgreSQL cluster with one primary node and at least one read-only node
The cluster endpoint (not the primary node endpoint)
Transaction splitting enabled on the cluster endpoint
Test environment
This test uses PolarDB PostgreSQL 16. All settings are identical across both endpoint types except the connection endpoint.
| Setting | Value |
|---|---|
| vCPUs + memory | 8 vCPUs, 64 GB |
| PostgreSQL version | 16.10 |
| Disk performance level | PSL5 |
| Nodes | 1 primary node + 1 read-only node |
| Connection endpoint | Cluster endpoint / Primary node endpoint |
| Transaction splitting | Enabled |
| Consistency level | Session consistency |
Test workload
Tool: Sysbench
Scenario:
oltp_read_onlySetup: Change the Sysbench connection host to the cluster endpoint. All other parameters follow the Performance testing method (OLTP).
The oltp_read_only scenario isolates read performance, which makes it suitable for measuring throughput gains from read/write splitting and transaction splitting.
Metric
TPS (Transactions Per Second): The number of transactions the database completes per second, counted as successful COMMIT operations.
Test data volume
| Parameter | Value |
|---|---|
| Number of tables | 8 |
| Number of rows | 64,000,000 |
| Total data volume | 128 GB |
Performance results

| Concurrency | Cluster endpoint (TPS) | Primary node endpoint (TPS) |
|---|---|---|
| 128 | 11,040.7 | 7,978.27 |
| 256 | 14,751.39 | 8,653.15 |
At 128 concurrent connections, the cluster endpoint delivers approximately 38% higher TPS than the primary node endpoint. At 256 concurrent connections, the gain increases to approximately 70%.