bufmgr code question
От
Neil Conway
Тема
bufmgr code question
Дата
Msg-id
1067924216.13534.58.camel@tokyo
Список
Дерево обсуждения
bufmgr code question Neil Conway <neilc@samurai.com>
Re: bufmgr code question Tom Lane <tgl@sss.pgh.pa.us>
Re: bufmgr code question Bruce Momjian <pgman@candle.pha.pa.us>
Re: bufmgr code question Neil Conway <neilc@samurai.com>
Re: bufmgr code question Jan Wieck <JanWieck@Yahoo.com>
In the BufferDesc struct, there seem to be two ways to mark a buffer page as dirty: setting the BM_DIRTY bit mask in the 'flags' field of the struct, and setting the 'cntxDirty' field to true. What is the difference between these two indications of a page's dirtiness? Or, more to the point, is there a reason we have two ways to do what looks like the same thing? BTW, I'd like to remove the behavior that LockBuffer(buf, EXCLUSIVE) automatically marks the page as dirty. Since there are some situations in which we acquire an exclusive buffer lock but don't actually end up modifying the page, this results in dirtying more buffers than are necessary. I think it's also good practise for code that modifies a buffer to explicitly mark it as dirty, rather than depending upon LockBuffer() to do it. Does this sound reasonable, provided I find and catch all the places that depend upon this behavior? (i.e. and change them to explicitly mark the buffer as dirty) -Neil
В списке pgsql-hackers по дате отправления