pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Grigory Smolkin <g.smolkin@postgrespro.ru>
To: pgsql-hackers@lists.postgresql.org
Subject: Re: [PATCH] xlogreader: do not read a file block twice
Date: Mon, 11 Feb 2019 19:32:59 +0300
Message-ID: <87e30af6-f85a-dc95-4574-95cded028786@postgrespro.ru> (raw)
In-Reply-To: <2ddf4a32-517e-d6f4-d992-4a63b6035bfd@postgrespro.ru>
References: <2ddf4a32-517e-d6f4-d992-4a63b6035bfd@postgrespro.ru>

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





view thread (11+ messages)  latest in thread

Message-ID: <87e30af6-f85a-dc95-4574-95cded028786@postgrespro.ru>
Permalink:  ../87e30af6-f85a-dc95-4574-95cded028786@postgrespro.ru/
Also on:    postgresql.org/message-id/87e30af6-f85a-dc95-4574-95cded028786@postgrespro.ru

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: g.smolkin@postgrespro.ru, pgsql-hackers@lists.postgresql.org
  Subject: Re: [PATCH] xlogreader: do not read a file block twice
  In-Reply-To: <87e30af6-f85a-dc95-4574-95cded028786@postgrespro.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox