Re: slow dropping of tables, DropRelFileNodeBuffers, tas

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: slow dropping of tables, DropRelFileNodeBuffers, tas
Дата
Msg-id CAMkU=1xYAaLFztn9R+p26qhKjaua-1i5cBi9uTPy_bGR=DPOvA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: slow dropping of tables, DropRelFileNodeBuffers, tas  (Simon Riggs <simon@2ndQuadrant.com>)
Ответы Re: slow dropping of tables, DropRelFileNodeBuffers, tas  (Simon Riggs <simon@2ndQuadrant.com>)
Re: slow dropping of tables, DropRelFileNodeBuffers, tas  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Thu, May 31, 2012 at 5:04 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
> On 30 May 2012 12:10, Heikki Linnakangas
> <heikki.linnakangas@enterprisedb.com> wrote:
>
>> Hmm, we do this in smgrDoPendingDeletes:
>>
>> for (i = 0; i <= MAX_FORKNUM; i++)
>> {
>>        smgrdounlink(srel, i, false);
>> }
>>
>> So we drop the buffers for each relation fork separately, which means that
>> we scan the buffer pool four times. Relation forks in 8.4 introduced that
>> issue, and 9.1 made it worse by adding another fork for unlogged tables.
>> With some refactoring, we could scan the buffer pool just once. That would
>> help a lot.
>
> That struck me as a safe and easy optimisation. This was a problem I'd
> been trying to optimise for 9.2, so I've written a patch that appears
> simple and clean enough to be applied directly.

By directly do you mean before the fork/commit fest begins?

>
>> Also, I wonder if DropRelFileNodeBuffers() could scan the pool without
>> grabbing the spinlocks on every buffer? It could do an unlocked test first,
>> and only grab the spinlock on buffers that need to be dropped.
>
> Sounds less good and we'd need reasonable proof it actually did
> anything useful without being dangerous.

Doing an initial unlocked test speeds things up another 2.69 fold (on
top of 3.55 for your patch) for me, with 1GB of shared buffers.  That
seems like it should be worthwhile.

How do we go about getting reasonable proof that it is safe?

Thanks,

Jeff

Вложения

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

Предыдущее
От: Dave Page
Дата:
Сообщение: Re: Visual Studio 2012 RC
Следующее
От: Jeff Janes
Дата:
Сообщение: Re: Add primary key/unique constraint using prefix columns of an index