Re: mosbench revisited

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: mosbench revisited
Дата
Msg-id CAMkU=1x=68iPHCXp8qAYGrLYGHHc=i4xHRUdGj-xN3xm1OxQ1A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: mosbench revisited  (Jim Nasby <jim@nasby.net>)
Ответы Re: mosbench revisited  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Wed, Aug 3, 2011 at 3:21 PM, Jim Nasby <jim@nasby.net> wrote:
> On Aug 3, 2011, at 1:21 PM, Robert Haas wrote:
>> 1. "We configure PostgreSQL to use a 2 Gbyte application-level cache
>> because PostgreSQL protects its free-list with a single lock and thus
>> scales poorly with smaller caches."  This is a complaint about
>> BufFreeList lock which, in fact, I've seen as a huge point of
>> contention on some workloads.  In fact, on read-only workloads, with
>> my lazy vxid lock patch applied, this is, I believe, the only
>> remaining unpartitioned LWLock that is ever taken in exclusive mode;
>> or at least the only one that's taken anywhere near often enough to
>> matter.  I think we're going to do something about this, although I
>> don't have a specific idea in mind at the moment.
>
> This has been discussed before: http://archives.postgresql.org/pgsql-hackers/2011-03/msg01406.php (which itself
references2 other threads). 
>
> The basic idea is: have a background process that proactively moves buffers onto the free list so that backends
shouldnormally never have to run the clock sweep (which is rather expensive). The challenge there is figuring out how
toget stuff onto the free list with minimal locking impact. I think one possible option would be to put the freelist
underit's own lock (IIRC we currently use it to protect the clock sweep as well). Of course, that still means the free
listlock could be a point of contention, but presumably it's far faster to add or remove something from the list than
itis to run the clock sweep. 

Hi Jim,

My experiments have shown that the freelist proper is not
substantially faster than the freelist clocksweep--and that is even
under the assumption that putting things back into the freelist is
absolutely free.  Under all the workload's I've been able to contrive,
other than ones contrived by actually hacking the code itself to make
it pathological, the average number of buffers inspected per run of
the clock sweep is <2.5.  Under contention, the mere act of acquiring
a lock is more traumatic than the actual work carried out under the
lock.

Cheers,

Jeff


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: Reduce WAL logging of INSERT SELECT
Следующее
От: Dimitri Fontaine
Дата:
Сообщение: Re: mosbench revisited