Re: Buffer locking is special (hints, checksums, AIO writes)
От | Robert Haas |
---|---|
Тема | Re: Buffer locking is special (hints, checksums, AIO writes) |
Дата | |
Msg-id | CA+TgmoY6_-LcmkSYwKR2F=+vhr_Z3LYxATrnwioWPSNUjSy6=g@mail.gmail.com обсуждение исходный текст |
Ответ на | Buffer locking is special (hints, checksums, AIO writes) (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: Buffer locking is special (hints, checksums, AIO writes)
|
Список | pgsql-hackers |
On Fri, Aug 22, 2025 at 3:45 PM Andres Freund <andres@anarazel.de> wrote: > My conclusion from the above is that we ought to: > > A) Make Buffer Locks something separate from lwlocks > B) Merge BufferDesc.state and the content lock > C) Allow some modifications of BufferDesc.state while holding spinlock +1 to (A) and (B). No particular opinion on (C) but if it works well, great. > The order of changes I think makes the most sense is the following: > > 1) Allow some modifications while holding the buffer header spinlock > 2) Reduce buffer pin with just an atomic-sub > 3) Widen BufferDesc.state to 64 bits > 4) Implement buffer locking inside BufferDesc.state > 5) Do IO while holding share-exclusive lock and require all buffer > modifications to at least hold share exclusive lock > 6) Wait for AIO when acquiring an exclusive content lock No strong objections. I certainly like getting to (5) and (6) and I think those are in the right order. I'm not sure about the rest. I thought (1) and (2) were the same change after reading your email; and it surprises me a little bit that (2) is separate from (4). But I'm sure you have a much better sense of this than I do. > DOES ANYBODY HAVE A BETTER NAME THAN SHARE-EXCLUSIVE???!? AFAIK "share exclusive" or "SX" is standard terminology. While I'm not wholly hostile to the idea of coming up with something else, I don't think our tendency to invent our own way to do everything is one of our better tendencies as a project. -- Robert Haas EDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: