Re: Why do spgbuildempty(), btbuildempty(), and blbuildempty() use smgrwrite()?

From: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
To: melanieplageman(at)gmail(dot)com
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Why do spgbuildempty(), btbuildempty(), and blbuildempty() use smgrwrite()?
Date: 2022-03-03 02:57:23
Message-ID: 20220303.115723.407686721420998045.horikyota.ntt@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

At Wed, 2 Mar 2022 20:07:14 -0500, Melanie Plageman <melanieplageman(at)gmail(dot)com> wrote in
> If you enable the CHECK_WRITE_VS_EXTEND-protected assert in mdwrite(),
> you'll trip it anytime you exercise btbuildempty(), blbuildempty(), or
> spgbuildempty().
>
> In this case, it may not make any meaningful difference if smgrwrite()
> or smgrextend() is called (_mdfd_getseg() behavior won't differ even
> with the different flags, so really only the FileWrite() wait event will
> be different).
> However, it seems like it should still be changed to call smgrextend().
> Or, since they only write a few pages, why not use shared buffers like
> gistbuildempty() and brinbuildempty() do?
>
> I've attached a patch to move these three into shared buffers.
>
> And, speaking of spgbuildempty(), there is no test exercising it in
> check-world, so I've attached a patch to do so. I wasn't sure if it
> belonged in spgist.sql or create_index_spgist.sql (on name alone, seems
> like the latter but based on content, seems like the former).
>
> - Melanie

I didn't dig into your specific isssue, but I'm mildly opposed to
moving them onto shared buffers. They are cold images of init-fork,
which is actually no-use for active servers. Rather I'd like to move
brinbuildempty out of shared buffers considering one of my proposing
patches..

regards.

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro Horiguchi 2022-03-03 03:04:32 Re: Add CHECKPOINT_REQUESTED flag to the log message in LogCheckpointStart()
Previous Message Kyotaro Horiguchi 2022-03-03 02:50:03 Re: pg_walinspect - a new extension to get raw WAL data and WAL stats