I database distribuiti necessitano di chiavi primarie generabili in modo autonomo su nodi distinti. Lo standard internazionale di riferimento è l’UUID (Universally Unique Identifier).
1. La Struttura dell’UUID a 128 Bit
Standardizzato da RFC 9562, un UUID comprende 16 ottetti (128 bit) rappresentati come 32 cifre esadecimali divise in 5 gruppi separati da trattini:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx2. Matematica delle Collisioni e Sicurezza
Con 122 bit di pura casualità nell’UUID v4 (circa 5,3 × 10^36 combinazioni), servirebbe generare 1 miliardo di UUID al secondo per 85 anni per raggiungere il 50% di probabilità di collisione.
3. UUID v4 (Casuale) vs UUID v7 (Ordinato nel Tempo)
Se l’UUID v4 è puramente casuale, l’UUID v7 integra un timestamp Unix a 48 millisecondi nei bit superiori, offrendo un ordinamento cronologico automatico.
4. Indicizzazione Database e Frammentazione B-Tree
Le chiavi casuali v4 causano frequenti split negli indici B-Tree. Con UUID v7 le scritture avvengono in sequenza, aumentando la velocità di inserimento fino a 10 volte su PostgreSQL e MySQL.