For example, if page lsn in storage is 0x90000 and start to replay from 0x10000.
If 0x10000 is full-page xlog record, then we can ignore to replay xlog between 
0x10000~0x90000 for this page.


Is there any correct issue if the page exists in the buffer pool and ignore to 
replay for full-page or init page if page lsn is larger than the lsn of xlog 
record?

















At 2020-03-13 23:41:03, "Alvaro Herrera" <alvhe...@2ndquadrant.com> wrote:
>On 2020-Mar-13, Thunder wrote:
>
>> Hello hackers:
>> 
>> 
>> During crash recovery, we compare most of the lsn of xlog record with page 
>> lsn to determine if the record has already been replayed.
>> The exceptions are full-page and init-page xlog records.
>> It's restored if the xlog record includes a full-page image of the page.
>> And it initializes the page if the xlog record include init page information.
>> 
>> 
>> When we enable checksum for the page and verify page success, can we
>> compare the page lsn with the lsn of full-page xlog record or init
>> page xlog record to detemine it  has already been replayed?
>
>In order to verify that the checksum passes, you have to read the page
>first.  So what are you optimizing?
>
>-- 
>Álvaro Herrera                https://www.2ndQuadrant.com/
>PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Reply via email to