Re: Changing shared_buffers without restart
От | Andres Freund |
---|---|
Тема | Re: Changing shared_buffers without restart |
Дата | |
Msg-id | 1ABF6EF8-8556-4C1D-BA34-142DC4813CED@anarazel.de обсуждение исходный текст |
Ответ на | Re: Changing shared_buffers without restart (Dmitry Dolgov <9erthalion6@gmail.com>) |
Ответы |
RE: Changing shared_buffers without restart
Re: Changing shared_buffers without restart |
Список | pgsql-hackers |
Hi, On July 14, 2025 10:39:33 AM EDT, Dmitry Dolgov <9erthalion6@gmail.com> wrote: >> On Mon, Jul 14, 2025 at 10:23:23AM -0400, Andres Freund wrote: >> > Those steps are separated in time, and I'm currently trying to understand >> > what are the consequences of performing them in different order and whether >> > there are possible concurrency issues under various scenarios. Does this >> > make more sense, or still not? >> >> I still don't understand why it'd ever make sense to put a buffer onto the >> freelist before updating NBuffers first. > >Depending on how NBuffers is updated, different backends may have >different value of NBuffers for a short time frame. In that case a >scenario I'm trying to address is when one backend with the new NBuffers >value allocates a new buffer and puts it into the buffer lookup table, >where it could become reachable by another backend, which still has the >old NBuffer value. Correct me if I'm wrong, but initializing buffer >headers + updating NBuffers means clock sweep can now return one of >those new buffers, opening the scenario above, right? The same is true if you put buffers into the freelist. Andres -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
В списке pgsql-hackers по дате отправления: