Mikä on karkaussekunti?
Karkaussekunti on yhden sekunnin säätö, joka lisätään ajoittain koordinoituun yleisaikaan (UTC), maailmanlaajuiseen aikastandardiin, johon puhelimesi, palvelimesi ja satelliittisi synkronoituvat. Kun sellainen lisätään, päivän viimeinen minuutti sisältää 61 sekuntia 60 sijasta — kello tikittää läpi 23:59:60 ennen kuin se vaihtuu 00:00:00.
Karkaussekunnit kuulostavat vähäpätöisiltä. Ne eivät ole. Tuo ylimääräinen sekunti on kaatanut suuria verkkosivustoja, peruuttanut lentoja ja käynnistänyt vuosikymmeniä kestäneen väittelyn fyysikkojen, tähtitieteilijöiden ja ohjelmistosuunnittelijoiden välillä. Vuonna 2022 maailman ajanmittausviranomaiset äänestivät lopulta niistä luopumisesta. Tässä on mitä karkaussekunti todella on, miksi se on olemassa ja miksi se on poistumassa.
Miksi karkaussekunteja on olemassa
Ongelma tiivistyy kahteen eri tapaan mitata aikaa, jotka eivät täysin sovi yhteen.
Atomiaika on täysin tasaista. Vuodesta 1967 lähtien sekunti on määritelty cesium-133-atomien värähtelyjen perusteella — 9 192 631 770 värähtelyä sekunnissa. Ympäri maailmaa oleva atomikellojen verkosto ylläpitää kansainvälistä atomiaikaa (TAI), ja se on hämmästyttävän säännöllistä: se ei nopeudu eikä hidastu.
Maan pyöriminen ei ole tasaista. Päivän pituus, mitattuna planeetan todellisen pyörimisen perusteella, on hieman epäsäännöllinen. Vuorovesien aiheuttama kitka, Maan sulan ytimen liikkeet ja massasiirtymät, kuten sulavat jääpeitteet, kaikki vaikuttavat pyörimisnopeuteen. Pitkällä aikavälillä planeetta yleensä hidastuu, joten tähtitieteellinen päivä on hieman pidempi kuin 86 400 atomisekuntia. Tätä pyörimiseen perustuvaa aikaa kutsutaan UT1:ksi.
Jos ne jätettäisiin omilleen, UTC (rakennettu tasaisten atomisekuntien varaan) ja UT1 (sidottu todelliseen aurinkoon taivaalla) ajautuisivat hitaasti erilleen. Pitääkseen ne linjassa, sääntö on yksinkertainen: UTC ei saa koskaan poiketa UT1:stä enempää kuin 0,9 sekuntia. Aina kun ero lähestyy tätä rajaa, UTC:hen lisätään karkaussekunti, jotta atomiaika "odottaa" hitaammin pyörivän Maan saavuttamista.
Joten karkaussekunti on pohjimmiltaan manuaalinen korjaus, joka pitää tarkat atomikellomme tahdissa sen huojuvan planeetan kanssa, jolla todella elämme.
Lyhyt historia karkaussekunneista
Karkaussekunnit otettiin käyttöön vuonna 1972, kun UTC määriteltiin uudelleen atomiaikaan perustuvaksi, mutta samalla sidotuksi Maan pyörimiseen.
Siitä lähtien 27 karkaussekuntia on lisätty vuoteen 2016 mennessä. Jokainen tähän mennessä on ollut positiivinen — sekunti lisätty, ei koskaan poistettu — koska Maan pyöriminen on yleisesti jäänyt jälkeen atomiajasta tuona aikana. Viimeisin karkaussekunti lisättiin 31. joulukuuta 2016 kello 23:59:60 UTC.
Sen jälkeen oli huomattava, lähes seitsemän vuoden tauko, koska Maan pyöriminen itse asiassa nopeutui hieman viime vuosina — tarpeeksi, että ensimmäistä kertaa tutkijat alkoivat vakavasti keskustella negatiivisen karkaussekunnin mahdollisuudesta (sekunnin poistamisesta lisäämisen sijaan), mitä ei ole koskaan tapahtunut ja mitä monet insinöörit pelkäävät jopa enemmän kuin tavallista lajia.
Kuka päättää milloin sellainen tapahtuu?
Karkaussekunteja ei aikatauluteta kiinteällä kalenterilla. Ne ilmoittaa International Earth Rotation and Reference Systems Service (IERS) , jonka pääkonttori on lähellä Pariisia, ja joka seuraa jatkuvasti planeetan pyörimistä.
Kun UT1–UTC-ero on lähestymässä 0,9 sekuntia, IERS julkaisee tiedotteen — tyypillisesti noin kuusi kuukautta etukäteen — jossa ilmoitetaan, että karkaussekunti lisätään. Sopimuksen mukaan lisäykset tapahtuvat joko 30. kesäkuuta tai 31. joulukuuta (UTC) lopussa.
Tämä kuuden kuukauden varoitusaika on insinööriongelman ydin: aikataulu on epäsäännöllinen ja arvaamaton. Et voi kirjoittaa kaavaa, joka kertoo milloin seuraava karkaussekunti tapahtuu, kuten voit karkausvuosien kohdalla. Sinun on odotettava IERS:n ilmoitusta ja varmistettava sitten, että jokainen järjestelmäsi kello tietää siitä.
Miksi insinöörit vihaavat karkaussekunteja
Useimmille ihmisille ylimääräinen sekunti on huomaamaton. Tietokoneille, jotka odottavat jokaisen minuutin olevan täsmälleen 60 sekuntia, 61 sekunnin minuutti on miina.
Kuuluisin tapaus tapahtui 30. kesäkuuta 2012, kun positiivinen karkaussekunti lisättiin. Sen osuessa kohdalle useat järjestelmät kaatuivat. Reddit meni alas yhdessä muiden suurten sivustojen kanssa. Bugi jäljitettiin siihen, miten Linux-ydin käsitteli kellon taaksepäin siirtymistä sillä hetkellä — se laukaisi karkaavan tilan, joka kuormitti palvelinten suorittimia. Myös lentoyhtiöiden varausjärjestelmät, jotka oli rakennettu vaikutuksen alaisena olleelle ohjelmistolle, raportoivat häiriöistä, viivästyttäen sisäänkirjautumisia. Samanlaisia ongelmia oli esiintynyt aiemminkin karkaussekuntien yhteydessä.
Perimmäiset ongelmat ovat rakenteellisia:
- Tapahtuma on harvinainen, joten karkaussekuntia käsitteleviä koodipolkuja ei juuri koskaan käytetä eikä niitä testata todellisissa olosuhteissa.
- Aika näyttää pysähtyvän tai toistuvan, ja monet ohjelmistot olettavat hiljaa, että aika liikkuu vain eteenpäin, monotonisesti.
- Aikataulu on arvaamaton, joten järjestelmien on haettava ja luotettava ulkopuoliseen ilmoitukseen sen sijaan, että ne laskisivat säädön itse.
Koska nykyaikainen käyttökatkos voi levitä rahoitusmarkkinoille, tietoliikenneverkkoihin ja pilvialustoille, yksi väärin käsitelty sekunti voi olla todella kallis.
Googlen "karkaussekuntien levitys" -kierroratkaisu
Sen sijaan, että karkaussekunti lisättäisiin yhdellä äkillisellä hyppäyksellä, Google kehitti lähestymistavan nimeltä leap smear (karkaussekuntien levitys). Sen sijaan, että lisättäisiin kokonainen sekunti keskiyöllä, Googlen palvelimet levittävät korjauksen pitkälle ajanjaksolle — tyypillisesti noin ~24 tunnin ajalle tapahtuman ympärillä — tekemällä jokaisesta sekunnista huomaamattoman pidemmän (tai lyhyemmän).
Levityksen aikana mikään kello ei koskaan näytä 23:59:60 eikä mikään kello koskaan siirry taaksepäin; aika vain kulkee hyvin hitaasti "hitaasti" päivän ajan, kunnes ylimääräinen sekunti on hiljaa imeytynyt. Ohjelmisto näkee tasaisen, monotonisen kellon eikä koskaan kohtaa vaarallista reunatapausta. Amazon, Meta ja muut omaksuivat samanlaisia levitysstrategioita, ja siitä on tullut tosiasiallinen selviytymistekniikka suurille järjestelmille.
Sudenkuoppa: levitetty kello on tarkoituksella eri mieltä virallisen UTC:n kanssa tuntien ajan — hyvä useimmille palveluille, mutta päänsärky, kun sitä täytyy sovittaa yhteen levittämättömien järjestelmien kanssa. Se on kiertotie ongelmalle, jonka ala yhä enemmän koki, ettei sen pitäisi olla olemassa.
Jos työskentelet epookkiajan kanssa, huomaa, että Unix-aikaleima ei laske karkaussekunteja ollenkaan — Unix-aika yksinkertaisesti teeskentelee, että jokaisessa päivässä on täsmälleen 86 400 sekuntia, mikä on osa syytä siihen, miksi todellinen säätö aiheuttaa niin paljon kitkaa.
Vuoden 2035 päätös: karkaussekunnit lakkautetaan
Keskustelu huipentui vuoden 2022 yleisessä paino- ja mittakonferenssissa (CGPM) — kansainvälisessä elimessä, joka hallinnoi metrijärjestelmää ja sekunnin määritelmää.
Edustajat hyväksyivät merkittävän päätöslauselman: karkaussekuntien lisäämiskäytäntö lopetetaan vuoteen 2035 mennessä. Tästä lähtien UTC:n annetaan ajautua erilleen UT1:stä enemmän kuin nykyinen 0,9 sekunnin raja, ja toleranssi neuvotellaan myöhemmin uudelleen — todennäköisesti eron annetaan kasvaa vuosikymmeniä, ehkä minuuttiin tai enemmän, ennen kuin mitään korjausta edes harkitaan.
Käytännössä tämä tarkoittaa, että UTC:stä tulee tasainen, jatkuva aikaskaala ilman enää yllättäviä 61 sekunnin minuutteja. Tähtitieteilijät, jotka todella tarvitsevat Maan pyörimisaikaa, voivat edelleen käyttää UT1:tä suoraan; kaikki tietokoneita käyttävät saavat kellon, johon he voivat vihdoin luottaa. Muutos vaihtaa pienen, hitaasti kertyvän erimielisyyden Auringon kanssa maailmanlaajuisen teknisen riskin toistuvan lähteen poistamiseen.
Usein kysytyt kysymykset
Onko karkaussekuntia koskaan poistettu lisäämisen sijaan?
Ei. Kaikki 27 vuodesta 1972 lähtien lisättyä karkaussekuntia ovat olleet positiivisia — sekunti lisätty. Negatiivista karkaussekuntia (siirtymä 23:59:58:sta 00:00:00:een) ei ole koskaan tapahtunut, vaikka Maan viimeaikainen nopeampi pyöriminen teki siitä hetken aikaa todellisen mahdollisuuden ennen kuin vuoden 2035 päätös teki koko kysymyksen merkityksettömäksi.
Vaikuttavatko karkaussekunnit aikavyöhykkeisiin?
Ei suoraan. Aikavyöhykkeet ovat kiinteitä poikkeamia UTC:stä, joita hallinnoidaan tietokantojen, kuten IANA aikavyöhyketietokanta, kautta. Karkaussekunti säätää itse UTC:tä, joten jokainen vyöhyke siirtyy samalla hetkellä samanaikaisesti — vyöhykkeiden väliset poikkeamat eivät koskaan muutu.
Muuttuuko tietokoneeni kello vuonna 2035?
Ei näkyvää muutosta käyttäjille. Vuoden 2035 jälkeen kellot yksinkertaisesti lakkaavat vastaanottamasta satunnaisia karkaussekunteja. UTC ajautuu hitaasti erilleen tähtitieteellisestä ajasta monien vuosien aikana, mutta tuo ero on aivan liian pieni huomattavaksi jokapäiväisessä elämässä.
Mitä eroa on UTC:llä, TAI:lla ja UT1:llä?
TAI on puhdasta atomiaikaa, täysin tasaista. UT1 on aika, joka perustuu Maan todelliseen pyörimiseen. UTC on jokapäiväinen standardi: se kulkee atomisekunteja kuten TAI, mutta pidettiin linjassa UT1:n kanssa karkaussekuntien avulla. Vuodesta 2016 lähtien UTC on täsmälleen 37 sekuntia jäljessä TAI:sta.
Miksi ei vain anneta kellon ja Auringon ajautua erilleen?
Se on pohjimmiltaan mitä vuoden 2035 päätös tekee. Ero kasvaa niin hitaasti — noin minuutin vuosisadassa — että sen merkitys näkyy vasta sukupolvien päästä, ja siihen mennessä kertakorjaus voidaan suunnitella harkitusti sen sijaan, että sitä paikattaisiin muutaman vuoden välein.
Utelias, miten koneet todella laskevat aikaa kaiken tämän alla? Karkaussekunnit katoavat kokonaan epookkiajassa — kokeile Unix-aikaleiman muunnin nähdäksesi tarkalleen, miten tietokoneet seuraavat sekuntien kulumista.