Re: pgsql: Remove the restriction that the relmap must be 512 bytes.

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Robert Haas <rhaas(at)postgresql(dot)org>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Remove the restriction that the relmap must be 512 bytes.
Date: 2022-07-27 17:19:39
Message-ID: 20220727171939.6ixixqcjt5riil2o@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On 2022-Jul-26, Robert Haas wrote:

> Remove the restriction that the relmap must be 512 bytes.
>
> Instead of relying on the ability to atomically overwrite the
> entire relmap file in one shot, write a new one and durably
> rename it into place. Removing the struct padding and the
> calculation showing why the map is exactly 512 bytes, and change
> the maximum number of entries to a nearby round number.

Another thing that seems to have happened here is that catversion ought
to have been touched and wasn't. Trying to start a cluster that was
initdb'd with the previous code enters an infinite loop that dies each
time with

2022-07-27 19:17:27.589 CEST [2516547] LOG: database system is ready to accept connections
2022-07-27 19:17:27.589 CEST [2516730] FATAL: could not read file "global/pg_filenode.map": read 512 of 524
2022-07-27 19:17:27.589 CEST [2516731] FATAL: could not read file "global/pg_filenode.map": read 512 of 524
2022-07-27 19:17:27.589 CEST [2516547] LOG: autovacuum launcher process (PID 2516730) exited with exit code 1
2022-07-27 19:17:27.589 CEST [2516547] LOG: terminating any other active server processes

Perhaps we should still do a catversion bump now, since one hasn't
happened since the commit.

--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
"El número de instalaciones de UNIX se ha elevado a 10,
y se espera que este número aumente" (UPM, 1972)

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2022-07-27 17:38:36 Re: pgsql: Remove the restriction that the relmap must be 512 bytes.
Previous Message Tom Lane 2022-07-27 16:00:23 pgsql: Add missing PGDLLEXPORT markings in contrib/pg_prewarm.

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2022-07-27 17:38:36 Re: pgsql: Remove the restriction that the relmap must be 512 bytes.
Previous Message Tom Lane 2022-07-27 17:15:02 Re: Reducing planning time on tables with many indexes