うるう秒とは?
うるう秒とは、携帯電話、サーバー、衛星がすべて同期する世界標準時である協定世界時(UTC)に、時折追加される1秒の調整のことです。うるう秒が挿入されると、その日の最後の1分は60秒ではなく61秒になります。時計は 23:59:60 を刻んでから00:00:00に進みます。
うるう秒は些細なものに聞こえますが、決してそうではありません。このたった1秒が、主要なウェブサイトをダウンさせ、フライトを欠航させ、物理学者、天文学者、ソフトウェア技術者の間で数十年にわたる議論を引き起こしてきました。2022年、世界の時刻管理機関はついにうるう秒を廃止することを決定しました。ここでは、うるう秒とは実際に何なのか、なぜ存在するのか、そしてなぜ廃止されようとしているのかを説明します。
うるう秒が存在する理由
問題は、完全には一致しない2つの異なる時間の測定方法にあります。
原子時は完全に安定しています。 1967年以来、秒はセシウム133原子の振動(1秒間に9,192,631,770回)によって定義されています。世界中の原子時計のネットワークが国際原子時(TAI)を維持しており、これは驚くほど規則的で、速くなったり遅くなったりしません。
地球の自転は安定していません。 惑星の実際の自転によって測定される1日の長さは、わずかに不規則です。潮汐による摩擦、地球の溶融核の動き、氷床の融解などの質量移動がすべて自転速度に影響を与えます。長期的には、地球は一般的に減速しているため、天文日は86,400原子秒よりもわずかに長くなります。この自転に基づく時間は UT1 と呼ばれます。
そのまま放置すると、UTC(安定した原子秒に基づく)とUT1(空の実際の太陽に結びついた)はゆっくりと乖離していきます。それらを一致させるためのルールは単純です。UTCとUT1の差が0.9秒を超えてはならない。 その差が限界に近づくたびに、うるう秒がUTCに挿入され、原子時が遅い地球の自転に「追いつく」のを待つようにします。
つまり、うるう秒は基本的に、正確な原子時計を、私たちが実際に住んでいるこのぐらつく惑星と同期させるための手動補正なのです。
うるう秒の簡単な歴史
うるう秒は 1972年 に導入されました。このときUTCは、原子時に基づきながらも地球の自転に結びついた状態を保つように再定義されました。
それ以来、2016年までに 27回のうるう秒 が追加されました。これまでのところ、すべて正のうるう秒(秒が追加され、削除されたことはない)です。これは、その期間、地球の自転が一般的に原子時より遅れていたためです。直近のうるう秒は 2016年12月31日 23:59:60 UTCに挿入されました。
その後、約7年間の顕著な空白期間がありました。これは、近年地球の自転がわずかに速くなったためです。その結果、初めて、科学者たちは負のうるう秒(秒を追加するのではなく削除する)の可能性について真剣に議論し始めました。これはこれまでに一度も起こったことがなく、多くのエンジニアは通常のうるう秒以上に恐れています。
いつ発生するかは誰が決めるのか?
うるう秒は固定されたカレンダーで予定されているわけではありません。パリ近郊に本部を置く 国際地球回転・基準系事業(IERS) が発表します。IERSは地球の自転を継続的に監視しています。
UT1とUTCの差が0.9秒に近づくと、IERSは通常 約6ヶ月前 にうるう秒が挿入されることを宣言する速報を発行します。慣例により、挿入は6月30日または12月31日(UTC)の終わりに行われます。
この6ヶ月のリードタイムが、エンジニアリング上の問題の核心です。スケジュールは不規則で予測不可能だからです。うるう年のように、次のうるう秒がいつ発生するかを示す計算式を書くことはできません。IERSの発表を待ってから、システム内のすべての時計がそれを認識していることを確認する必要があります。
エンジニアがうるう秒を嫌う理由
ほとんどの人にとって、1秒余分にあっても気づきません。しかし、毎分が正確に60秒であることを期待するコンピュータにとって、61秒の分は地雷原です。
最も有名な事件は 2012年6月30日 に発生しました。このとき、正のうるう秒が挿入されました。その瞬間、さまざまなシステムがダウンしました。Reddit は他の大規模サイトとともにダウンしました。このバグは、Linux カーネルがその瞬間に時計を逆方向に戻す処理をしたことに起因していました。これにより暴走状態が発生し、サーバーのCPUが張り付いてしまいました。影響を受けたソフトウェア上に構築された航空会社の予約システムも混乱を報告し、チェックインが遅れました。同様の問題は、それ以前のうるう秒でも発生していました。
根本的な問題は構造的なものです。
- イベントが稀であるため、うるう秒を処理するコードパスはほとんど実行されず、実際の条件下でテストされることもほとんどありません。
- 時間が停止または繰り返されているように見え、多くのソフトウェアは時間が常に単調に進むと暗黙のうちに想定しています。
- スケジュールが予測不可能であるため、システムは外部の発表を取得して信頼する必要があり、自分で調整を計算することはできません。
現代の障害は金融市場、通信ネットワーク、クラウドプラットフォームに連鎖する可能性があるため、1秒の処理ミスが本当に高くつく可能性があります。
Googleの「うるう秒スミア」回避策
うるう秒を一度に急激に適用する代わりに、Google は うるう秒スミア と呼ばれるアプローチを開拓しました。真夜中に丸々1秒を挿入する代わりに、Googleのサーバーは補正を長い期間(通常はイベントの前後約24時間)に分散させ、各秒をわずかに長く(または短く)します。
スミア中、どの時計も23:59:60を表示せず、どの時計も逆方向に進みません。時間は、余分な1秒が静かに吸収されるまで、1日間ごくわずかに「遅く」進むだけです。ソフトウェアは滑らかで単調な時計を認識し、危険なエッジケースに遭遇することはありません。Amazon、Metaなども同様のスミア戦略を採用しており、大規模システムの事実上の存続手法となっています。
欠点は、スミアされた時計は数時間にわたって公式のUTCと意図的に一致しないことです。これはほとんどのサービスでは問題ありませんが、スミアされていないシステムと調整する必要がある場合には頭痛の種です。これは、業界がそもそも存在すべきではないと感じるようになった問題に対する回避策です。
エポック時間を扱う場合、Unixタイムスタンプ はうるう秒をまったくカウントしないことに注意してください。Unix時間は、単にすべての日が正確に86,400秒であると見なします。これが、現実世界の調整がこれほど多くの摩擦を引き起こす理由の一部です。
2035年の決定:うるう秒廃止
この議論は、2022年の国際度量衡総会(CGPM) で決着しました。CGPMは、メートル法と秒の定義を管理する国際機関です。
代表団は画期的な決議を可決しました。うるう秒を追加する慣行は2035年までに停止されるというものです。それ以降、UTCは現在の0.9秒の制限を超えてUT1から乖離することが許され、許容範囲は後日再交渉される予定です。おそらく、その差は数十年、場合によっては1分以上にまで拡大し、その後初めて補正が検討されることになるでしょう。
現実的には、これはUTCが滑らかで連続的な時間スケールとなり、驚きの61秒の分がなくなることを意味します。地球の自転時間を本当に必要とする天文学者は、引き続きUT1を直接使用できます。コンピュータを実行するすべての人は、ついに信頼して動作させることができる時計を手に入れることになります。この変更は、太陽とのわずかでゆっくりと蓄積する不一致と、世界的な技術リスクの繰り返し発生する原因を排除することとを交換するものです。
よくある質問
うるう秒が追加ではなく削除されたことはありますか?
いいえ。1972年以来挿入された27回のうるう秒はすべて正のうるう秒(秒が追加)でした。負のうるう秒(23:59:58から00:00:00にスキップする)は一度も発生していません。しかし、2035年の決定によって問題全体が議論の余地がなくなる前に、近年の地球の自転速度の上昇により、負のうるう秒が現実的な可能性として一時的に浮上しました。
うるう秒はタイムゾーンに影響しますか?
直接は影響しません。タイムゾーンは、IANAタイムゾーンデータベース のようなデータベースを通じて管理されるUTCからの固定オフセットです。うるう秒はUTC自体を調整するため、すべてのゾーンが同時に同じ瞬間にシフトします。ゾーン間のオフセットが変わることはありません。
2035年に私のコンピュータの時計は変わりますか?
ユーザーにとって目に見える変化はありません。2035年以降、時計は時折発生するうるう秒を受け取らなくなるだけです。UTCは長年にわたって天文時からゆっくりと乖離しますが、その乖離は日常生活で気づくにはあまりにも小さすぎます。
UTC、TAI、UT1の違いは何ですか?
TAI は純粋な原子時で、完全に安定しています。UT1 は地球の実際の自転に基づく時間です。UTC は日常的な標準時です。TAIのように原子秒で動作しますが、うるう秒を使用してUT1と一致するように保たれていました。2016年現在、UTCはTAIより正確に37秒遅れています。
時計と太陽を乖離させたままにしておけばいいのでは?
それがまさに2035年の決定が行うことです。その不一致は非常にゆっくりと拡大します(1世紀あたり約1分)。そのため、それが問題になるまでには何世代もかかり、その時点で、数年ごとにパッチを当てるのではなく、計画的に一度だけの補正を行うことができます。
この背後で、機械が実際にどのように時間をカウントしているのか気になりませんか?うるう秒はエポック時間では完全に消え去ります。コンピュータが刻々と過ぎる秒をどのように追跡しているかを正確に確認するには、Unixタイムスタンプ変換 をお試しください。