On Fri, Mar 17, 2017 at 8:20 AM, Amit Kapila <amit.kapil...@gmail.com> wrote: > On Thu, Mar 16, 2017 at 9:39 PM, Ashutosh Sharma <ashu.coe...@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.
Done. Please check the attached v3 patch. 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. Thank you so much for putting that point. I too think that we should record the flag status in the WAL record and clear it only when required during replay. -- With Regards, Ashutosh Sharma EnterpriseDB:http://www.enterprisedb.com
0001-Reset-LH_PAGE_HAS_DEAD_TUPLES-flag-during-replay-v3.patch
Description: binary/octet-stream
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers