Re: Sequential disk access during VACUUM for GiST/GIN

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Костя Кузнецов <chapaev28(at)yandex(dot)ru>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Sequential disk access during VACUUM for GiST/GIN
Date: 2014-05-06 10:46:55
Message-ID: CAPpHfdsKWm1AbHqEs3n3s2GVHGQ4+H3ZR7KpDFG=EvqX_hsQTg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi!

On Tue, Apr 29, 2014 at 2:34 PM, Костя Кузнецов <chapaev28(at)yandex(dot)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.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Meskes 2014-05-06 11:31:46 Re: using array of char pointers gives wrong results
Previous Message Heikki Linnakangas 2014-05-06 10:33:01 Re: doPickSplit stack buffer overflow in XLogInsert?