Re: lazy_truncate_heap() - Mailing list pgsql-hackers

From Zeugswetter Andreas OSB sIT
Subject Re: lazy_truncate_heap()
Date
Msg-id 6DAFE8F5425AB84DB3FCA4537D829A561CEA8AA752@M0164.s-mxs.net
Whole thread Raw
In response to Re: lazy_truncate_heap()  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: lazy_truncate_heap()  (Simon Riggs <simon@2ndQuadrant.com>)
List pgsql-hackers
> Logically, "xmin horizon" conflicts could be flexible/soft.
> That is, if we implemented the idea to store a lastCleanedLSN for each buffer then
> "xmin horizon" conflicts would be able to continue executing until they
> see a buffer with buffer.lastCleanedLSN > conflictLSN.

I think the trouble is, that HOT can put extremely recent lastCleanedLSN's on pages.
It would need some knobs to avoid this, that most likely reduce efficiency of HOT.

What about using the page LSN after max_standby_delay ?
Using the page LSN cancels queries earlier than the lastCleanedLSN,
but probably in many cases later than an immediate cancel after max_standby_delay.
Of course that only helps when reading static parts of tables :-(

Instead of a cancel message, the replay would need to send (set in shmem) the first
LSN applied after max_standby_delay to the relevant backend for it's LSN checks
(if buffer.LSN >= received_max_delay_lsn cancel).

Andreas

pgsql-hackers by date:

Previous
From: Gregory Stark
Date:
Subject: Re: contrib/pg_stat_statements 1226
Next
From: "Douglas McNaught"
Date:
Subject: Re: QuickLZ compression algorithm (Re: Inclusion in the PostgreSQL backend for toasting rows)