Desde 2008, en lugar de aplicar segundos bisiestos a nuestros servidores mediante pasos de reloj, tenemos un segundo adicional en distintas horas antes y después de cada salto. La extensión de bisiesto aplica a todos los servicios de Google, incluidas todas nuestras API.
Nuestra propuesta de prueba estándar
Muchas organizaciones usan relojes con manchas y sería útil si las manchas eran iguales. Después de todo, el propósito de los relojes es leer la misma hora en diferentes lugares.
Recomendamos que cualquiera que transfiera segundos bisiestos use una velocidad lineal de 24 horas desde el mediodía hasta el mediodía en formato UTC.
Esta extensión combina las características que la experiencia ha demostrado que funciona bien para muchas aplicaciones de computación distribuidas:
- La duración prolongada mantiene un cambio de frecuencia pequeño. El cambio de la extensión es de aproximadamente 11.6 ppm. Esto se encuentra en la producción y en los errores térmicos de la mayoría de las máquinas y los osciladores de cuarzo, así como con una tasa de transmisión máxima de NTP de 500 ppm.
- Si se centra la extensión en el segundo bisiesto, en lugar de hacerla comenzar o terminar en el segundo bisiesto, se minimiza el desplazamiento máximo.
- En comparación con una prueba de coseno, la extensión lineal es más simple, más fácil de calcular y minimiza el cambio de frecuencia máximo.
- Este cambio se ha extendido en gran medida por parte de otras personas que implementaron pruebas de 24 horas. Anteriormente, usamos una duración de 20 horas, pero cambiamos para alinearla con este intervalo más popular de mediodía y mediodía.
Planeamos usar esta extensión para todos los segundos bisiestos futuros. Amazon usa esta extensión en AWS. Una forma de usarlo en tus sistemas es configurarlos para usar NTP público de Google.
Ejemplo de la prueba estándar
En este ejemplo, supondremos que hay un segundo bisiesto a finales de diciembre de 2022, aunque aún no se anunció el programa real.
El período de prueba comienza a las 2022-12-31 12:00:00 UTC y continúa hasta el 2023-01-01 12:00:00 UTC. Antes y después de este período, los relojes con manchas y los servicios de tiempo coinciden con los relojes que aplican segundos bisiestos.
Durante la prueba, los relojes funcionan un poco más lento de lo habitual. Cada segundo en la escala de tiempo distribuida es de alrededor de 11.6 μs más que un segundo de SI según se indica en Tiempo terrestre.
Al comienzo del segundo bisiesto, el tiempo extendido es inferior a 0.5 s detrás de UTC. UTC inserta un segundo adicional, mientras que el tiempo de extensión continúa sin interrupciones. Esto hace que el tiempo de dispersión esté justo por debajo de los 0.5 s antes de UTC cuando finalice el segundo bisiesto.
Si continúas ejecutando los relojes a la misma frecuencia ralentizada, la extensión continua reduce este desplazamiento en las siguientes doce horas. A las 12:00:00, los calcetines y los saltos son acordes.
TAI | UTC sin datos | Tiempo extendido |
---|---|---|
31-12-2022 12:00:36.000000 | 2022-12-31 11:59:59.000000 | 2022-12-31 11:59:59.000000 |
31-12-2022 12:00:37.000000 | 31-12-2022 12:00:00.000000 | 31-12-2022 12:00:00.000000 |
31-12-2022 12:00:38.000011 | 2022-12-31 12:00:01.000011 | 31-12-2022 12:00:01.000000 |
01-01-2023 00:00:35.499976 | 2022-12-31 23:59:58.499976 | 21-12-2022 23:59:58.000000 |
01-01-2023 00:00:36.499988 | 2022-12-31 23:59:59.499988 | 21-12-2022 23:59:59.000000 |
01-01-2023 00:00:37.000000 | 31-12-2022 23:59:60.000000 | 2022-12-31 23:59:59.500005 |
01-01-2023 00:00:37.500000 | 2022-12-31 23:59:60.500000 | 01-01-2023 00:00:00.000000 |
01-01-2023 00:00:38.000000 | 01-01-2023 00:00:00.000000 | 01-01-2023 00:00:00.499994 |
01-01-2023 00:00:38.500011 | 01-01-2023 00:00:00.500011 | 01-01-2023 00:00:01.000000 |
01-01-2023 00:00:39.500023 | 01-01-2023 00:00:01.500023 | 01-01-2023 00:00:02.000000 |
2023-01-01 12:00:36.999988 | 2023-01-01 11:59:58.999988 | 01-01-2023 11:59:59.000000 |
01-01-2023 12:00:38.000000 | 01-01-2023 12:00:00.000000 | 01-01-2023 12:00:00.000000 |
01-01-2023 12:00:39.000000 | 01-01-2023 12:00:01.000000 | 01-01-2023 12:00:01.000000 |
En los 86,401 segundos de SI de la extensión, el efecto de estiramiento de los 86,400 segundos indicados se suma al segundo de SI adicional que requiere el salto.
Un segundo bisiesto negativo, si alguna vez ocurriría, se correría y aceleraría los relojes en los 86,399 segundos del SI desde el mediodía hasta el mediodía.
Otras manchas
Se propuso o implementó muchas otras bifurcaciones.
- UTC-SLS es una extensión lineal de más de 1,000 s antes del salto (de 23:43:20 a 00:00:00).
- La prueba de 2008 de Google fue una prueba de coseno de 20 horas antes del salto (04:00:00 a 00:00:00). Esa fue la única vez que usamos una muestra de coseno.
- La mancha de segundo salto de Google fue una repetición lineal de 20 horas centrada en el salto. Usamos esto en 2012, 2015 y 2016.
- La mancha de Bloomberg es una propagación lineal más de 2,000 segundos después del salto (00:00:00 a 00:33:20).
- Meinberg implementó una muestra de coseno de duración configurable.
Compatibilidad de software para la prueba
Nuestra biblioteca de pruebas sin problemas de código abierto se convertirá en cualquier dirección entre el tiempo de extensión y el TAI sin seguimiento o GPST.