Re: Re: Optimize crash recovery

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Thunder <thunder1(at)126(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Re: Optimize crash recovery
Date: 2020-03-13 16:30:58
Message-ID: 20200313163058.GA9473@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2020-Mar-14, Thunder wrote:

> 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?

Oh! right. The assumption, before we had page-level checksums, was that
the page at LSN 0x90000 could have been partially written, so the upper
half of the contents would actually be older and thus restoring the FPI
(and all subsequent WAL changes) was mandatory. But if the page
checksum verifies, then there's no need to return the page back to an
old state only to replay everything to bring it to the new state again.

This seems a potentially worthwhile optimization ...

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Paul A Jungwirth 2020-03-13 16:32:20 Re: range_agg
Previous Message Alvaro Herrera 2020-03-13 16:25:20 Re: BEFORE ROW triggers for partitioned tables