Re: Microvacuum support for Hash Index
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Ashutosh Sharma <ashu.coek88@gmail.com>
Cc: Robert Haas <robertmhaas@gmail.com>,
Michael Paquier <michael.paquier@gmail.com>, Jesper Pedersen <jesper.pedersen@redhat.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-17T02:50:36Z
Lists: pgsql-hackers
On Thu, Mar 16, 2017 at 9:39 PM, Ashutosh Sharma <ashu.coek88@gmail.com> wrote: >>> >> >> Don't you think, we should also clear it during the replay of >> XLOG_HASH_DELETE? We might want to log the clear of flag along with >> WAL record for XLOG_HASH_DELETE. >> > > Yes, it should be cleared. I completely missed this part in a hurry. > Thanks for informing. I have taken care of it in the attached v2 > patch. > + /* + * Mark the page as not containing any LP_DEAD items. See comments + * in hashbucketcleanup() for details. + */ + pageopaque = (HashPageOpaque) PageGetSpecialPointer(page); + pageopaque->hasho_flag &= ~LH_PAGE_HAS_DEAD_TUPLES; Your comment here says, refer hashbucketcleanup and in that function, the comment says "Clearing this flag is just a hint; replay won't redo this.". Both seems contradictory. You need to change the comment in hashbucketcleanup. As I said in my previous e-mail, I think you need to record clearing of this flag in WAL record XLOG_HASH_DELETE as you are not doing this unconditionally and then during replay clear it only when the WAL record indicates the same. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Fixes for single-page hash index vacuum.
- 953477ca3526 10.0 landed
-
Port single-page btree vacuum logic to hash indexes.
- 6977b8b7f4df 10.0 landed
-
Avoid core dump for empty prepared statement in an aborted transaction.
- ba61a04bc7fe 10.0 cited
-
Change representation of statement lists, and add statement location info.
- ab1f0c822571 10.0 cited