Re: Sequential disk access during VACUUM for GiST/GIN - Mailing list pgsql-hackers

From Alexander Korotkov
Subject Re: Sequential disk access during VACUUM for GiST/GIN
Date
Msg-id CAPpHfdsKWm1AbHqEs3n3s2GVHGQ4+H3ZR7KpDFG=EvqX_hsQTg@mail.gmail.com
Whole thread Raw
In response to Sequential disk access during VACUUM for GiST/GIN  (Костя Кузнецов <chapaev28@yandex.ru>)
List pgsql-hackers
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.  

pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: doPickSplit stack buffer overflow in XLogInsert?
Next
From: Michael Meskes
Date:
Subject: Re: using array of char pointers gives wrong results