Re: Spurious "apparent wraparound" via SimpleLruTruncate() rounding

x4mmm@yandex-team.ru

From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Noah Misch <noah@leadboat.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, pgsql-hackers@postgresql.org
Date: 2021-01-02T07:31:45Z
Lists: pgsql-hackers

> 2 янв. 2021 г., в 01:35, Noah Misch <noah@leadboat.com> написал(а):
> There's no
> other connection to this thread, and one can review patches on this thread
> without studying commit c732c3f. 

OK, thanks!

Do I understand correctly that this is bugfix that needs to be back-patched?
Thus we should not refactor 4 identical *PagePrecedes(int page1, int page2) into 1 generic function?
Since functions are not symmetric anymore, maybe we should have better names for arguments than "page1" and "page2"? At least in dev branch.

Is it common practice to embed tests into assert checking like in SlruPagePrecedesUnitTests()?

SLRU seems no near simple, BTW. The only simple place is naive caching algorithm. I remember there was a thread to do relations from SLRUs.

Best regards, Andrey Borodin.


Commits

  1. Prevent excess SimpleLruTruncate() deletion.

  2. Fix unlinking of SLRU segments.

  3. Defer flushing of SLRU files.

  4. Change XID and mxact limits to warn at 40M and stop at 3M.