Microvacuum for gist. Question about GISTPageOpaqueData flag

Поиск
Список
Период
Сортировка
От Anastasia Lubennikova
Тема Microvacuum for gist. Question about GISTPageOpaqueData flag
Дата
Msg-id CAP4vRV7LeB4fQQAjxvdygSdR+SbUJMy-XN=T=vg+047zaCXNAg@mail.gmail.com
обсуждение исходный текст
Ответы Re: Microvacuum for gist. Question about GISTPageOpaqueData flag  (Teodor Sigaev <teodor@sigaev.ru>)
Список pgsql-hackers
Hi,

I'm working on microvacuum 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].

While writing patch, I found strange GISTPageOpaqueData flag - F_TUPLES_DELETED.
Its description looks like it is the same for BTP_HAS_GARBAGE

#define F_TUPLES_DELETED   (1 << 2) /* some tuples on the page are dead */

#define BTP_HAS_GARBAGE   (1 << 6) /* page has LP_DEAD tuples */

But it's definitely not the same things. I found only two mentions of this flag. 
Function GistMarkTuplesDeleted sets the flag after dead tuples deletion.

Do anyone need it at all? I found no place where this flag is checked.
Is it correct using of the flag?

I need an advice, what would be better: 
- to add new flag like F_HAS_GARBAGE,
- or to delete all mentions of F_TUPLES_DELETED and use it in gist microvacuum.

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Failing assertions in indxpath.c, placeholder.c and brin_minmax.c
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Buildfarm TAP testing is useless as currently implemented