Re: Removing freelist (was Re: Should I implement DROP INDEX CONCURRENTLY?)
От | Robert Haas |
---|---|
Тема | Re: Removing freelist (was Re: Should I implement DROP INDEX CONCURRENTLY?) |
Дата | |
Msg-id | CA+TgmobeGYzbNpvf3gwyHM7Onhh75Pw6D8kUYKPjpMViSXsN=g@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Removing freelist (was Re: Should I implement DROP INDEX CONCURRENTLY?) (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Mon, Jan 23, 2012 at 11:01 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: >> On Mon, Jan 23, 2012 at 12:12 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>>> The expensive part of what >>>> we do while holding BufFreelistLock is, I think, iterating through >>>> buffers taking and releasing a spinlock on each one (!). > >>> Yeah ... spinlocks that, by definition, will be uncontested. > >> What makes you think that they are uncontested? > > Ah, never mind. I was thinking that we'd only be touching buffers that > were *on* the freelist, but of course this is incorrect. The real > problem there is that BufFreelistLock is also used to protect the > clock sweep pointer. I think basically we gotta find a way to allow > multiple backends to run clock sweeps concurrently. Or else fix > things so that the freelist never (well, hardly ever) runs dry. I'd come to the same conclusion myself. :-) -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: