From: | "Bagga, Rishu" <bagrishu(at)amazon(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: SLRUs in the main buffer pool - Page Header definitions |
Date: | 2022-06-23 20:25:21 |
Message-ID: | 7B6E31BC-13E0-45FB-AAEC-3BCEDFB5A52C@amazon.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Andres,
Thanks for your response.
To answer your questions:
>> 3. A flag to identify if the page is a relational or BufferedObject
>Why is this needed in the page header?
Now that we are dealing with two different type of page headers, we need to know how to interpret any given page. We need to use pd_flags to determine this.
>How are you proposing to deal with this in the "key" to "offset in >SLRU"
>mapping? E.g. converting a xid to an offset in the pg_xact SLRU. I >assume
>you're thinking to deal with this by making the conversion math a bit >more
>complicated?
You’re right; we would have to account for this in the conversion math between the ‘key’ and ‘offset’. The change to the macros would be as following:
#define MULTIXACT_OFFSETS_PER_PAGE ((BLCKSZ - SizeOfBufferedObjectPageHeaderData) / sizeof(MultiXactOffset))
Additionally, we need to account for the size of the page header when reading and writing multixacts in memory based off of the entryno.
Rishu Bagga
Amazon Web Services (AWS)
On 6/22/22, 2:40 PM, "Andres Freund" <andres(at)anarazel(dot)de> wrote:
Hi,
On 2022-06-22 21:06:29 +0000, Bagga, Rishu wrote:
> 3. A flag to identify if the page is a relational or BufferedObject
Why is this needed in the page header?
> Using the new BufferedObject page header will be space efficient but
> introduces a significant change in the codebase to now track two types
> of page header data. During upgrade, all SLRU files that exist on the
> system must be converted to the new format with page header. This will
> require rewriting all the SLRU pages with the page header as part of
> pg_upgrade.
How are you proposing to deal with this in the "key" to "offset in SLRU"
mapping? E.g. converting a xid to an offset in the pg_xact SLRU. I assume
you're thinking to deal with this by making the conversion math a bit more
complicated?
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2022-06-23 20:27:33 | Re: SLRUs in the main buffer pool - Page Header definitions |
Previous Message | Robert Haas | 2022-06-23 20:06:21 | making relfilenodes 56 bits |