Re: [PATCH] xlogreader: do not read a file block twice
Grigory Smolkin <g.smolkin@postgrespro.ru>
From: Grigory Smolkin <g.smolkin@postgrespro.ru>
To: pgsql-hackers@lists.postgresql.org
Date: 2019-02-11T16:32:59Z
Lists: pgsql-hackers
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
Commits
-
Avoid some unnecessary block reads in WAL reader
- 0dd6ff0ac848 12.0 landed
-
Split out XLog reading as an independent facility
- 7fcbf6a405ff 9.3.0 cited
-
Make standby server continuously retry restoring the next WAL segment with
- 1bb2558046cc 9.0.0 cited