Re: Why do spgbuildempty(), btbuildempty(), and blbuildempty() use smgrwrite()?
От | Kyotaro Horiguchi |
---|---|
Тема | Re: Why do spgbuildempty(), btbuildempty(), and blbuildempty() use smgrwrite()? |
Дата | |
Msg-id | 20220303.115723.407686721420998045.horikyota.ntt@gmail.com обсуждение исходный текст |
Ответ на | Why do spgbuildempty(), btbuildempty(), and blbuildempty() use smgrwrite()? (Melanie Plageman <melanieplageman@gmail.com>) |
Список | pgsql-hackers |
At Wed, 2 Mar 2022 20:07:14 -0500, Melanie Plageman <melanieplageman@gmail.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
В списке pgsql-hackers по дате отправления: