Mancha de bisiesto

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.