Skip to content

2.25.0.0-b45

@spolitov spolitov tagged this 26 Sep 12:00
Summary:
Currently we use page size to create shared memory segment for pg client communication.
By default it is just 4KB.
When response does not fit into segment, it is transferred via RPC.
Such logic increase latency. Nearly 10ms per 1000 requeses.

During scan we fetch data by chunks of 1000 rows.
So nearly all scan read responses does not fit into 4KB and we fallback to RPC every time.

This diff introduces intermediate shared memory buffers, that are greater in size.
And could be reused by different postgres connections.

Read time changes in newly added test (PgSingleTServerTest.ScanOneColumn):
Don't use shared memory at all: 1.17s
Only 4KB segments: 1.35s
With intermediate big buffers: 1.06s
Jira: DB-12886

Test Plan: PgSingleTServerTest.ScanOneColumn

Reviewers: rthallam, esheng

Reviewed By: esheng

Subscribers: yql, ybase

Tags: #jenkins-ready

Differential Revision: https://phorge.dev.yugabyte.com/D38149
Assets 2
Loading