IT-lexicon › Databases › XID-wraparound

XID-wraparound

Databases Svenska → Bijgewerkt: 2026-10-04

PostgreSQL-transactie-ID's zijn 32 bits breed en lopen rond. Worden de oude ID's niet op tijd opgeruimd, dan accepteert de database helemaal geen schrijfacties meer.

Of een rij zichtbaar is, hangt af van de vraag of de transactie die haar aanmaakte vóór of na de jouwe kwam. Een cirkelvormige teller kent echter geen absoluut "eerder": de ene helft van de ruimte telt als verleden, de andere als toekomst. Passeert een oude rij de grens van twee miljard, dan lijkt ze ineens uit de toekomst te komen en wordt onzichtbaar. Daarom bevriest autovacuum oude rijen en markeert ze als permanent zichtbaar. Laat men het te ver komen, dan begint de server te waarschuwen; bij nog een miljoen resterende ID's zet hij schrijfacties stil en eist een vacuum in single-user mode. Het is een van de weinige bekende oorzaken van urenlange tot meerdaagse ongeplande downtime in verder goed beheerde Postgres-installaties.

← Terug naar het lexicon