El UUID versión 6 es una variante del identificador único universal que reorganiza los componentes del UUID v1 para mejorar la ordenación en bases de datos y sistemas que requieren un orden cronológico natural. Esta versión facilita la clasificación de registros según el momento de su creación sin necesidad de procesamiento adicional.
El proceso de generación de un UUID v6 es similar al del UUID v1, pero con una disposición diferente de los campos:
1. Marca de tiempo (timestamp): Se utiliza un valor de tiempo de 60 bits que representa el número de intervalos de 100 nanosegundos desde la medianoche del 15 de octubre de 1582, fecha de inicio del calendario gregoriano. A diferencia del UUID v1, en el UUID v6 los bits de la marca de tiempo se almacenan en orden de mayor a menor significancia, lo que permite una ordenación natural.
2. Versión: Se asignan 4 bits para indicar que se trata de un UUID de versión 6.
3. Secuencia de reloj (clock sequence): Se utilizan 14 bits para manejar situaciones donde el reloj del sistema no avanza lo suficientemente rápido o existen múltiples generadores de UUID en el mismo nodo.
4. Nodo: Tradicionalmente, este campo de 48 bits contiene la dirección MAC del dispositivo. Sin embargo, por razones de privacidad y seguridad, es común utilizar un valor pseudoaleatorio en lugar de la dirección MAC real.
La estructura resultante del UUID v6 permite que, al ordenar lexicográficamente una serie de UUIDs, se refleje el orden cronológico de su creación, mejorando la eficiencia en bases de datos y sistemas que requieren esta funcionalidad.
Ejemplos de UUID v6 generados podrían ser:
1ec9414c-232a-6b00-b3c8-9e6bdeced846
1ec9414c-232a-6b01-b3c8-9e6bdeced846
Estos identificadores reflejan el orden temporal de su generación, facilitando su uso en sistemas que requieren ordenación por tiempo.
Para más información, consulta la RFC 9562, que define los estándares para los UUID, incluyendo las especificaciones para la versión 6.
Jorge García
Fullstack developer