Snowflake ID es un método de generación de identificadores únicos utilizado habitualmente en sistemas distribuidos. Combina información temporal, nodos de trabajo y secuencias para generar identificadores enteros con alta unicidad.
A diferencia de los IDs autoincrementales de una base de datos, los Snowflake ID pueden generarse de forma independiente en diferentes servidores y servicios.
El principio consiste en combinar una marca de tiempo, identificadores de nodo y un número de secuencia dentro de un único entero. Asignar diferentes identificadores a cada instancia ayuda a reducir el riesgo de colisiones.
Worker ID identifica un servidor, contenedor o instancia de servicio. Process ID permite distinguir diferentes procesos o instancias dentro del mismo Worker.
En producción, cada generador activo debe utilizar una combinación de identificadores diferente para reducir el riesgo de IDs duplicados.
Muchas implementaciones de Snowflake utilizan el tiempo transcurrido desde una fecha inicial en lugar del timestamp Unix completo. La época influye en el rango temporal que puede representar el ID.
Esta herramienta utiliza 2020-01-01 00:00:00 como época predeterminada y permite definir otra fecha.
La unicidad depende del tiempo, los identificadores de nodo y la secuencia. Es importante administrar correctamente Worker ID y Process ID.
Los cambios hacia atrás del reloj del sistema también deben gestionarse, ya que pueden afectar a la generación de IDs según la implementación utilizada.
Comentarios 0