Re: StrategyGetBuffer optimization, take 2
| От | Andres Freund |
|---|---|
| Тема | Re: StrategyGetBuffer optimization, take 2 |
| Дата | |
| Msg-id | 20130805164037.GC19850@alap2.anarazel.de обсуждение исходный текст |
| Ответ на | StrategyGetBuffer optimization, take 2 (Merlin Moncure <mmoncure@gmail.com>) |
| Ответы |
Re: StrategyGetBuffer optimization, take 2
|
| Список | pgsql-hackers |
On 2013-08-05 10:49:08 -0500, Merlin Moncure wrote: > optimization 4: remove free list lock (via Jeff Janes). This is the > other optimization: one backend will no longer be able to shut down > buffer allocation I think splitting off the actual freelist checking into a spinlock makes quite a bit of sense. And I think a separate one should be used for the actual search for the clock sweep. I don't think the unlocked increment of nextVictimBuffer is a good idea though. nextVictimBuffer jumping over NBuffers under concurrency seems like a recipe for disaster to me. At the very, very least it will need a good wad of comments explaining what it means and how you're allowed to use it. The current way will lead to at least bgwriter accessing a nonexistant/out of bounds buffer via StrategySyncStart(). Possibly it won't even save that much, it might just increase the contention on the buffer header spinlock's cacheline. Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: