Обсуждение: Sequential disk access during VACUUM for GiST/GIN

Поиск
Список
Период
Сортировка

Sequential disk access during VACUUM for GiST/GIN

От
Костя Кузнецов
Дата:
<div>Hello.</div><div>There is a task "Sequential disk access during VACUUM for GiST/GIN " in list
GSOC14.</div><div>Nobodyis working on this task?</div><div><span lang="en"><span>Do I understand</span> <span>this task
correctly</span><span>?</span></span></div><div><spanlang="en"><span>I must recode
gistbulkdelete.</span></span></div><div><spanlang="en"><span>GistBDItem *stack is must have items with sequential blkno
aspossible.</span></span></div><div><span lang="en"><span>I have a question:</span></span></div><div><span
lang="en"><span>whereare access to disk in this function? ReadBufferExtended?</span></span></div><div><span
lang="en"><span>Thanks</span></span></div>

Re: Sequential disk access during VACUUM for GiST/GIN

От
Alexander Korotkov
Дата:
Hi!

On Tue, Apr 29, 2014 at 2:34 PM, Костя Кузнецов <chapaev28@yandex.ru> wrote:
There is a task "Sequential disk access during VACUUM for GiST/GIN " in list GSOC14.
Nobody is working on this task?

I didn't hear anybody is working on it.
 
Do I understand this task correctly?
I must recode gistbulkdelete.
GistBDItem *stack is must have items with sequential blkno as possible.

Yes, make gistbulkdelete and ginbulkdelete access disk sequentially while now tree is traversed in logical order. So these functions need to be completely reworked: I'm not sure GistBDItem will survive :)
The challenge is concurrency. Vacuum shouldn't block concurrent readers and writers. You can see btbulkdelete  which supports sequential disk access now.
 
I have a question:
where are access to disk in this function? ReadBufferExtended?

Yes, this function read buffer to shared memory (if it isn't already) and "pins" it.

------
With best regards,
Alexander Korotkov.