Re: Batching page logging during B-tree build

From: Andres Freund <andres(at)anarazel(dot)de>
To: Peter Geoghegan <pg(at)bowt(dot)ie>
Cc: "Andrey M(dot) Borodin" <x4mmm(at)yandex-team(dot)ru>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Subject: Re: Batching page logging during B-tree build
Date: 2020-09-23 18:29:40
Message-ID: 20200923182940.rcy3lggbzc42jk3h@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2020-09-23 11:19:18 -0700, Peter Geoghegan wrote:
> On Fri, Sep 18, 2020 at 8:39 AM Andrey M. Borodin <x4mmm(at)yandex-team(dot)ru> wrote:
> > Here is PoC with porting that same routine to B-tree. It allows to build B-trees ~10% faster on my machine.

I wonder what the effect of logging WAL records as huge as this (~256kb)
is on concurrent sessions. I think it's possible that logging 32 pages
at once would cause latency increases for concurrent OLTP-ish
writes. And that a smaller batch size would reduce that, while still
providing most of the speedup.

> It doesn't seem to make any difference on my machine, which has an
> NVME SSD (a Samsung 970 Pro). This is quite a fast SSD, though the
> sync time isn't exceptional.

Yea, they are surprisingly slow at syncing, somewhat disappointing for
the upper end of the consumer oriented devices.

> BTW, I noticed that the index build is absurdly bottlenecked on
> compressing WAL with wal_compression=on. It's almost 3x slower with
> compression turned on!

Really should replace WAL compression with lz4 (or possibly zstd).

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2020-09-23 19:02:42 Re: Batching page logging during B-tree build
Previous Message Peter Geoghegan 2020-09-23 18:19:18 Re: Batching page logging during B-tree build