Date: 2022-05-26
Time: 15:00–15:45
Room: Stream 1
Level: Intermediate
Vacuum is one of the most important features of the PostgreSQL system. This is because it not only recovers garbage space, but also manages transaction IDs and multi transaction IDs, called freezing, and reuses 32-bit XID space.
The PostgreSQL databases are protected from the problem of XID wraparound thanks to the freezing of vacuum. On the other hand, although Freeze Map, INDEX_CLEANUP option, the failsafe mode, and many other features have been introduced to enhance the freezing, I've still seen that freezing is still a source of annoyance to users and cases where it consumes disk I/O or the system becomes read-only due to XID wraparound.
This kind of problem has been discussed for a long time, along with various proposals such as the use of 64-bit XIDs. To resolve this problem, we need to consider the solution while considering possible side-effects, for example, on performance and disk compatibility, etc. Also, are freezing and 32-bit XID really bad ideas? Are there any better ideas?
In this session, I'll redefine the problems of freezing and XID wraparound in practice and explain feasible proposals with experimental results.