Kako Google upošteva prestopne sekunde na svojih strežnikih

Matej Huš

19. sep 2011 ob 18:50:31

O prestopnih sekundah smo že nekajkrat pisali, običajno tedaj, ko so se pojavile. Gre za dodatne sekunde, ki se dodajo (ali teoretično tudi odvzamejo) ob koncu junija ali decembra ob polnoči (vsakokrat po času UTC), ker vrtenje Zemlje ni povsem stalno. To se pri nas pokaže tako, da času 0:59.59 sledi izredna sekunda 0:59.60, šele nato pa je ura 1:00.00. V vsakdanjem življenju to težav ne povzroča, računalniki pa se tudi prek protokola NTP sinhronizirajo sami. Povzroča pa to probleme Googlu.

Googlovi inženirji so leta 2005 ugotovili, da za občutljivo infrastrukturo podatkovnih strežnikov prestopne sekunde (ko se de facto ena sekunda ponovi oziroma ura skoči nazaj) niso najbolj zaželene. Izpadov takrat sicer ni bilo, je pa nekaj manjših sistemov začasno nehalo delovati. Zato so v Googlu razmislili, kako prestopne sekunde prelisičiti.

Uporabili so zanimiv trik. Ure na njihovih računalnikih se sinhronizirajo na internih NTP-strežnikih, ki so jih prilagodili tako, da malo lažejo. Kadar se bo prestopna sekunda zgodila (IERS to objavi vnaprej), Google v NTP-strežnike doda dinamični popravek, tako da se ura vsakokrat sinhronizira na nekaj milisekund manj (ali več). Tako v vmesnem obdobju ravno nadoknadijo prestopno sekundo in ko se ta zgodi, so Googlove ure že točne, ne da bi bilo treba kakšno sekundo dodati ali spustiti.