Re: WIP: parallel GiST index builds

From: Tomas Vondra <tomas(at)vondra(dot)me>
To: "Andrey M(dot) Borodin" <x4mmm(at)yandex-team(dot)ru>
Cc: Andreas Karlsson <andreas(at)proxel(dot)se>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: WIP: parallel GiST index builds
Date: 2024-08-05 15:18:52
Message-ID: 8240d834-e42d-4f69-a393-b502dcdef780@vondra.me
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Here's an updated patch using GetFakeLSNForUnloggedRel() instead of the
atomic counter. I think this looks much nicer and less invasive, as it
simply uses XLogCtl shared memory (instead of having to pass a new
pointer everywhere).

We still need to pass the is_parallel flag, though. I wonder if we could
get rid of that too, and just use GetFakeLSNForUnloggedRel() for both
parallel and non-parallel builds? Why wouldn't that work?

I've spent quite a bit of time testing this, but mostly for correctness.
I haven't redone the benchmarks, that's on my TODO.

regards

--
Tomas Vondra

Attachment Content-Type Size
v20240805-0001-WIP-parallel-GiST-build.patch text/x-patch 36.7 KB
v20240805-0002-use-GetFakeLSNForUnloggedRel.patch text/x-patch 4.6 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2024-08-05 15:28:48 Re: [PATCH] Add crc32(text) & crc32(bytea)
Previous Message Umar Hayat 2024-08-05 15:17:38 Re: psql client does not handle WSAEWOULDBLOCK on Windows