Hi! On Thu, Jul 30, 2015 at 2:51 PM, Anastasia Lubennikova < lubennikov...@gmail.com> wrote:
> I have written microvacuum support for gist access method. > Briefly microvacuum includes two steps: > 1. When search tells us that the tuple is invisible to all transactions it > is marked LP_DEAD and page is marked as "has dead tuples", > 2. Then, when insert touches full page which has dead tuples it calls > microvacuum instead of splitting page. > You can find a kind of review here [1]. > > [1] > http://www.google-melange.com/gsoc/proposal/public/google/gsoc2015/ivanitskiy_ilya/5629499534213120 > > Patch is in attachements. Please review it. > Nice! Some notes about this patch. 1) Could you give same test case demonstrating that microvacuum really work with patch? Finally, we should get index less growing with microvacuum. 2) Generating notices for every dead tuple would be too noisy. I suggest to replace notice with one of debug levels. + elog(NOTICE, "gistkillitems. Mark Item Dead offnum %hd, blkno %d", offnum, BufferGetBlockNumber(buffer)); 3) Please, recheck coding style. For instance, this line needs more spaces and open brace should be on the next line. + if ((scan->kill_prior_tuple)&&(so->curPageData > 0)&&(so->curPageData == so->nPageData)) { ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company