Goodbye to sequential integers, hello UUIDv7!

Buildkite har övergått från att använda sekventiella heltal som primärnycklar och slumpmässiga UUIDs för externt bruk till att adoptera den tidsordnade standarden UUIDv7 som primärnyckel. Traditionella slumpmässiga UUIDs (som v4) orsakade prestandaproblem i databaser på grund av dålig indexlokalitet, vilket ledde till ineffektiva insättningar och sämre cache-utnyttjande. UUIDv7 löser dessa prestandaproblem genom att inkludera en tidsstämpel, vilket gör att identifierarna kan lagras sekventiellt och förbättrar både skriv- och läsprestanda. Experiment med tidsordnade UUIDv4-kompatibla identifierare visade betydande förbättringar, inklusive en 50% minskning av WAL-hastigheten. Beslutet att införa UUIDv7 som primärnyckel för nya tabeller är strategiskt viktigt för Buildkite, särskilt med tanke på utmaningarna med att hantera sekventiella heltal i distribuerade databasmiljöer.