L'evolució dels UUID: Comprendre les versions 1, 6 i 7
Els Identificadors Únics Universals (UUID) han estat una peça clau dels sistemes distribuïts durant dècades, oferint una manera fiable de generar claus úniques sense coordinació centralitzada. Encara que el UUID versió 4 (que es basa purament en nombres aleatoris) és la variant més famosa i utilitzada, té limitacions inherents quan s'utilitza com a clau primària en sistemes de gestió de bases de dades relacionals (RDBMS). L'aleatorietat és excel·lent per a la imprevisibilitat, però és nefasta per a la indexació de bases de dades. Quan insereixes un UUID aleatori en un índex B-tree, es produeixen divisions de pàgina massives i fragmentació de l'índex, degradant el rendiment d'escriptura amb el temps. Aquí és on entren en joc els UUID basats en el temps (especialment les versions 1, 6 i 7), oferint una alternativa estructurada que manté tant la unicitat com l'ordre cronològic.
El UUID versió 1 va ser l'intent original de combinar unicitat i temps. Genera un identificador utilitzant la marca de temps actual, una seqüència de rellotge i l'adreça MAC del node. La inclusió de l'adreça MAC garantia la unicitat espacial entre diferents màquines, mentre que la marca de temps garantia la unicitat temporal. No obstant això, el UUID v1 té un defecte crític per a la indexació de bases de dades: la seva marca de temps està estructurada de manera que els bits més significatius representen la menor granularitat de temps. En termes senzills, a mesura que passa el temps, el començament de la cadena UUID canvia ràpidament i de manera imprevisible, destruint qualsevol possibilitat d'ordenació seqüencial. A més, exposar l'adreça MAC va plantejar problemes de privacitat i seguretat, fent que molts desenvolupadors abandonessin el v1.
Per resoldre aquests problemes, la comunitat d'enginyeria va introduir el UUID versió 6 i la versió 7. El UUID v6 és essencialment un UUID v1 reorganitzat. Agafa els components de la marca de temps del v1 i els reordena perquè els bits més significatius representin la major granularitat temporal (anys, mesos, dies), baixant fins a les fraccions de segon. Aquest simple canvi assegura que els valors de UUID v6 siguin lexicogràficament ordenables pel temps. Si generes un UUID v6 avui i un altre demà, el de demà s'ordenarà després del d'avui, adaptant-se perfectament al funcionament dels índexs B-tree. Això elimina la fragmentació de l'índex associada al v4 i la impossibilitat d'ordenar del v1, mantenint la compatibilitat amb sistemes que esperen l'estructura tradicional del UUID.
El UUID versió 7 porta aquesta optimització un pas més enllà i representa l'estàndard d'or modern per a claus primàries de bases de dades. En lloc de confiar en l'antiga època gregoriana utilitzada per v1 i v6, el UUID v7 utilitza l'època Unix estàndard (mil·lisocons des del 1 de gener de 1970 UTC). Aquesta marca de temps ocupa els primers 48 bits de l'identificador. Els bits restants s'omplen amb dades aleatòries criptogràficament fortes. Aquest enfocament híbrid ofereix el millor de dos mons: l'ordenació seqüencial necessària per a insercions d'alt rendiment en bases de dades, combinada amb la seguretat i privacitat de les dades aleatòries. Utilitzant el nostre generador de UUID 100% gratuït i privat al navegador, pots crear a l'instant aquests identificadors moderns sense posar en risc les teves dades.