| From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Setting pd_lower in GIN metapage | 
| Date: | 2017-09-13 05:48:12 | 
| Message-ID: | 24cc6606-428d-8073-c62b-f07024465ef1@lab.ntt.co.jp | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On 2017/09/13 13:05, Tom Lane wrote:
> Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> writes:
>> On 2017/09/12 23:27, Amit Kapila wrote:
>>> I think one point which might be missed is that the patch needs to
>>> modify pd_lower for all usages of metapage, not only when it is first
>>> time initialized.
> 
>> Maybe I'm missing something, but isn't the metadata size fixed and hence
>> pd_lower won't change once it's initialized?  Maybe, it's not true for all
>> index types?
> 
> No, the point is that you might be dealing with an index recently
> pg_upgraded from v10 or before, which does not have the correct
> value for pd_lower on that page.  This has to be coped with.
Ah, got it. Thanks for the explanation.
I updated the patches so that the metapage's pd_lower is set to the
correct value just before *every* point where we are about to insert a
full page image of the metapage into WAL.  That's in addition to doing the
same in various metapage init routines, which the original patch did
already anyway.  I guess this now ensures that wal_consistency_checking
masking of these metapages as standard layout pages always works, even for
pre-v11 indexes that were upgraded.
Also, we now pass the metapage buffer as containing a page of standard
layout to XLogRegisterBuffer(), so that any hole in it is compressed when
actually writing to WAL.
Thanks,
Amit
| Attachment | Content-Type | Size | 
|---|---|---|
| 0001-Set-pd_lower-correctly-in-the-GIN-metapage.patch | text/plain | 7.1 KB | 
| 0002-Set-pd_lower-correctly-in-the-BRIN-index-metapage.patch | text/plain | 4.6 KB | 
| 0003-Set-pd_lower-correctly-in-the-SP-GiST-index-metapage.patch | text/plain | 3.9 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrey Borodin | 2017-09-13 05:53:53 | Re: Hooks to track changed pages for backup purposes | 
| Previous Message | Vaishnavi Prabakaran | 2017-09-13 05:44:00 | Re: PATCH: Batch/pipelining support for libpq |