Hm, looks like it could speed up PostgreSQL recovery, but is it safe?
On 02/11/2019 07:25 PM, Arthur Zakirov wrote:
> Hello hackers,
>
> Grigory noticed that one of our utilities has very slow performance
> when xlogreader reads zlib archives. We found out that xlogreader
> sometimes reads a WAL file block twice.
>
> zlib has slow performance when you read an archive not in sequential
> order. I think reading a block twice in same position isn't
> sequential, because gzread() moves current position forward and next
> call gzseek() to the same position moves it back.
>
> It seems that the attached patch solves the issue. I think when reqLen
> == state->readLen the requested block already is in the xlogreader's
> buffer.
>
> What do you think?
>
--
Grigory Smolkin
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company