Re: Hot Standby tuning for btree_xlog_vacuum()
От | Robert Haas |
---|---|
Тема | Re: Hot Standby tuning for btree_xlog_vacuum() |
Дата | |
Msg-id | AANLkTinic8+TWVNRi5bdP2eddShvS=tp5P5QZOayjbgz@mail.gmail.com обсуждение исходный текст |
Ответ на | Hot Standby tuning for btree_xlog_vacuum() (Simon Riggs <simon@2ndQuadrant.com>) |
Ответы |
Re: Hot Standby tuning for btree_xlog_vacuum()
|
Список | pgsql-hackers |
On Thu, Apr 29, 2010 at 4:12 PM, Simon Riggs <simon@2ndquadrant.com> wrote: > Simple tuning of btree_xlog_vacuum() using an idea I had a while back, > just never implemented. XXX comments removed. > > Allows us to avoid reading in blocks during VACUUM replay that are only > required for correctness of index scans. Review: 1. The block comment in XLogConfirmBufferIsUnpinned appears to be copied from somewhere else, and doesn't really seem appropriate for a new function since it refers to "the original coding of this routine".I think you could just delete the parenthesized portionof the comment. 2. This bit from ConfirmBufferIsUnpinned looks odd to me. + /* + * Found it. Now, pin/unpin the buffer to prove it's unpinned. + */ + if (PinBuffer(buf, NULL)) + UnpinBuffer(buf, false); I don't think pinning and unpinning the buffer is sufficient to provide that it isn't otherwise pinned. If the buffer isn't in shared buffers at all, it seems clear that no one can have it pinned. But if it's present in shared buffers, it seems like you still need LockBufferForCleanup(). -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise Postgres Company
В списке pgsql-hackers по дате отправления: