Re: [HACKERS] Microvacuum support for Hash Index
От | Ashutosh Sharma |
---|---|
Тема | Re: [HACKERS] Microvacuum support for Hash Index |
Дата | |
Msg-id | CAE9k0PkvFYPKnnyborEcxEnccHQufrpW=+NjNk78BH2_aLwkRQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Microvacuum support for Hash Index (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: [HACKERS] Microvacuum support for Hash Index
|
Список | pgsql-hackers |
On Thu, Mar 16, 2017 at 11:11 AM, Amit Kapila <amit.kapila16@gmail.com> wrote: > On Wed, Mar 15, 2017 at 9:23 PM, Ashutosh Sharma <ashu.coek88@gmail.com> wrote: >> >>> >>> Few other comments: >>> 1. >>> + if (ndeletable > 0) >>> + { >>> + /* No ereport(ERROR) until changes are logged */ >>> + START_CRIT_SECTION(); >>> + >>> + PageIndexMultiDelete(page, deletable, ndeletable); >>> + >>> + pageopaque = (HashPageOpaque) PageGetSpecialPointer(page); >>> + pageopaque->hasho_flag &= ~LH_PAGE_HAS_DEAD_TUPLES; >>> >>> You clearing this flag while logging the action, but same is not taken >>> care during replay. Any reasons? >> >> That's because we conditionally WAL Log this flag status and when we >> do so, we take a it's FPI. >> > > Sure, but we are not clearing in conditionally. I am not sure, how > after recovery it will be cleared it gets set during normal operation. > Moreover, btree already clears similar flag during replay (refer > btree_xlog_delete). You were right. In case datachecksum is enabled or wal_log_hint is set to true, 'LH_PAGE_HAS_DEAD_TUPLES' will get wal logged and therefore needs to be cleared on the standby as well. Attached is the patch that clears this flag on standby during replay. -- With Regards, Ashutosh Sharma EnterpriseDB:http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: