Spalmabile per ballare

A partire dal 2008, invece di applicare i secondi intercalari ai nostri server mediante l'utilizzo di passi di orologio, abbiamo spalmato il secondo in più nelle ore precedenti e successive a ogni intercalare. La ripartizione del balzo si applica a tutti i servizi Google, incluse tutte le nostre API.

Il nostro striscio standard

Molte organizzazioni usano orologi spalmati e sarebbe utile se gli stridi fossero uguali. Dopo tutto, gli orologi hanno lo scopo di leggere lo stesso orario in luoghi diversi.

Consigliamo a tutti gli utenti di spalmare di secondi intercalari di utilizzare uno strisciamento lineare di 24 ore da mezzogiorno a mezzogiorno (UTC).

Questo esempio combina le funzionalità che l'esperienza ha dimostrato di funzionare bene per molte applicazioni di calcolo distribuite:

  • La lunga durata mantiene la variazione di frequenza bassa. La variazione per lo striscio è di circa 23,6 ppm. Questo rientra negli errori di produzione e termici della maggior parte delle oscillatori al quarzo, nonché ben al di sotto della velocità massima di 500 ppm NTP.
  • Centra lo spot sul secondo intercalare, anziché fare in modo che inizi o finisca sul secondo intercalare, riduce al minimo l'offset massimo.
  • Rispetto a una macchia cosine, la maschera lineare è più semplice, relativa al calcolo e riduce al minimo la variazione massima della frequenza.
  • La durata di 24 ore è stata ampiamente adottata da altri che implementano gli scaglioni. In precedenza abbiamo utilizzato una durata di smagliamento di 20 ore, ma le abbiamo modificate per allinearci a questo intervallo più popolare da mezzogiorno a mezzogiorno.

Abbiamo intenzione di usare questo strumento per tutti i secondi intercalari futuri. Amazon utilizza questo smear in AWS. Un modo per utilizzarlo nei tuoi sistemi è configurarli in modo che utilizzino Google Public NTP.

Esempio di striscio standard

In questo esempio, supponiamo che alla fine di dicembre 2022 sia disponibile un secondo intercalare, anche se la pianificazione effettiva non è stata ancora annunciata.

Il periodo di prova inizia alle 2022-12-31 12:00:00 UTC e continua fino al 2023-01-01 12:00:00 UTC. Prima e dopo questo periodo, gli orologi diffusi e il servizio di gestione del tempo concordano con gli orologi che applicano i secondi intercalari.

Durante la riproduzione, gli orologi funzionano leggermente più lentamente del solito. Ogni secondo di tempo nella scala di tempo distribuito è di circa 11,6 μs più lungo di un secondo dell'IS, come realizzato in tempo terrestre.

All'inizio del secondo intercalare, il tempo ripartito è appena inferiore a 0,5 secondi rispetto al fuso orario UTC. Il fuso orario UTC inserisce un secondo aggiuntivo, mentre il tempo ripartito continua. In questo modo, il tempo ripartito diventa appena meno di 0,5 secondi prima della posizione UTC quando termina il secondo intercalare.

Continuando a eseguire gli orologi con la stessa velocità lenta, lo smemminamento in corso riduce le compensazioni nelle dodici ore successive. entro le 12:00

Tai UTC non rivestita Tempo macchiato
31-12-2022 12:00:36.000000 31-12-2022 11:59:59.000000 31-12-2022 11:59:59.000000
31-12-2022 12:00:37.000000 2021-12-31 12:00:00.000000 2021-12-31 12:00:00.000000
2021-12-31 12:00:38.000011 2021-12-31 12:00:01.000011 2021-12-31 12:00:01.000000
01-01-2023 00:00:35.499976 2021-12-31 23:59:58.499976 2021-12-31 23:59:58.000000
01-01-2023 00:00:36.499988 2021-12-31 23:59:59.499988 2021-12-31 23:59:59.000000
01-01-2023 00:00:37.000000 2021-12-31 23:59:60.000000 2021-12-31 23:59:59.500005
01-01-2023 00:00:37.500000 2021-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
01-01-2023 12:00:36.999988 01-01-2023 11:59:58.999988 2023-01-01 11:59:59.000000
2023-01-01 12:00:38.000000 2023-01-01 12:00:00.000000 2023-01-01 12:00:00.000000
01-01-2023 12:00:39.000000 2023-01-01 12:00:01.000000 2023-01-01 12:00:01.000000

Con gli 86.401 secondi di SI della prova, il tratto di 86.400 secondi indicato equivale a un secondo di SI aggiuntivo richiesto dal balzo.

Un secondo intercalare negativo, se dovesse capitare, sarebbe spalmato rapidamente aumentando la velocità degli orologi oltre i 86.399 secondi dell'indice SI da mezzogiorno a mezzogiorno.

Altre macchie

Sono stati proposti o implementati diversi altri scaglioni.

  • UTC-SLS è una macchia lineare oltre 1000 secondi prima del salto (23:43:20-00:00:00).
  • Lo striscione del 2008 di Google è stato una serie di striature cosine di 20 ore prima del salto (04:00:00-00:00:00). Era la sola volta che abbiamo usato una macchia cosine.
  • Lo smaglio di secondo intercalare di Google era di 20 ore lineari centrato sul balzo. L'abbiamo utilizzato nel 2012, 2015 e 2016.
  • La macchia di Bloomberg è una macchia lineare oltre 2000 secondi dopo il intercalare (dalle 00:00:00 alle 00:33:20).
  • Meinberg ha implementato uno spalmamento coseno di durata configurabile.

Supporto software per lo smear

La nostra libreria non standard open source effettua la conversione in entrambe le direzioni tra tempo distribuito e TAI o GPST senza costi.