Skip to content

2024.2.0.0-b43

@spolitov spolitov tagged this 08 Oct 06:01
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
Original commit: 12b2c407197438b34c9e00afa6e3a23f7c6b1b07/D38149
Jira: DB-12886

Test Plan: PgSingleTServerTest.ScanOneColumn

Reviewers: rthallam, esheng

Reviewed By: esheng

Subscribers: ybase, yql

Tags: #jenkins-ready

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