奧推網

選單
科技

恐造成下一個“千年蟲”的閏秒,遭科技巨頭們聯合抵制

整理 | 彭慧中 責編 | 屠敏

出品 | CSDN(ID:CSDNnews)

近日,谷歌、Meta、微軟和亞馬遜四位科技巨頭呼籲將閏秒取消,並稱閏秒會對網路造成巨大影響。閏秒或將成為下一個類似“千年蟲”bug的罪魁禍首。

原來,除了閏年與閏月外,還有閏秒這一說?那它又是如果波及網路世界的呢?

執行50年的閏秒,說取消就取消?

閏秒這一概念於1972年被首次提出。是指為保持“協調世界時”接近於“世界時”時刻,由國際計量局統一規定在年底或年中(也可能在季末)對“協調世界時”增加或減少1秒的調整。

科學上有兩種時間計量系統:基於地球自轉的天文測量而得出的“世界時”和以原子振盪週期確定的“原子時”。

“世界時”,以地球自轉為基礎的時間計量系統,由於地球自轉不穩定會帶來時間的差異。

“原子時”,由原子振盪週期得出的較恆定的時制,是一種均勻的時間計量系統。

根據“世界時”和“原子時”的速率差異進行推算,大約5000年後“原子時”會比“世界時”快1個小時,因此,1972年國際計量大會透過決議:使用“協調世界時”(即以原子時秒長為基礎,在時刻上儘量接近於世界時的一種時間計量系統)來計量時間。當“協調世界時”和“世界時”之差超過0。9秒時,國際地球自轉服務組織(IERS)就負責對“協調世界時”撥快或撥慢1秒,這就是閏秒。

1972年以來,閏秒已經出現過27次,上一次是2017年1月1日7時59分60秒。當“正閏秒”發生時,一分鐘將有61秒。例如,當需要插入閏秒時,23:59:59之後將不是00:00:00,而是會多出另一個原本不存在的“23:59:60”。在1972年,閏秒的誕生曾讓科學界和電信行業都很高興,但如今它對數字應用行業和科技行業來說卻同樣糟糕。

閏秒的殺傷力不容小覷

這個小小的閏秒造成的蝴蝶效應曾令整個網路世界屢次崩潰。

閏秒曾在2012年引發了Reddit的大規模停機。開源社群Mozilla、社交平臺LinkedIn、美國商戶點評網站Yelp和機票預訂供應商Amadeus也都遇到過相關問題。2017年,美國雲安全網路公司Cloudflare因閏秒變化而遭遇的故障導致客戶的一小部分伺服器離線。儘管Cloudflare的程式設計師提前寫好了軟體程式比較了兩個時鐘,計算出時間已經倒退,但無法對這一結果作出正確處理。

然而,類似“閏秒災難”所最著名的例子就是1999年所謂的“千年蟲”,當時人類建立的資料庫只記錄了1999年的最後兩位數,並在1999年變成2000年時帶來了一系列問題。等到2038年,當一些計算機用來計算1970年1月1日開始的秒數的32位數字不再足夠大時,一個相關的問題就會出現。

今年早些時候,當網路瀏覽器的版本號達到 100 時,一些網站因程式設計只處理兩位數的版本號而發生了堵塞。

廢除閏秒,時機已到?

針對閏秒問題,谷歌曾於2011年提出“閏秒彌補(leap smear)”方案——調整系統內部的網路時間協議(NTP)伺服器,每次更新時增加幾毫秒,彌補閏秒多出來的那一秒鐘,以保證伺服器能夠正常執行。但是,只要閏秒還存活在這世上,程式設計師們就得一直花精力操作。

圖源Engineering at Meta

在此之前,Meta的程式設計師們也採用過上述方法,可他們依然太害怕這些麻煩事兒了。為什麼不能一勞永逸呢?他們認為改變全球計時的方式比修復程式碼更容易。其工程師Oleg Obleukhov和研究科學家Ahmad Byagowi就發文表示,上述方案只適用於解決“正閏秒”出現的情況,隨著地球自轉模式的改變,未來還可能出現“負閏秒”。不徹底解決這一問題,“將對依靠計時器或排程器的軟體帶來毀滅性的影響。”

同時,這兩位工程師還表示,如果取消閏秒,不再繼續調整時間,未來1000年內可能不會再出現類似問題。

圖源Engineering at Meta

如今,谷歌、微軟、Meta和亞馬遜共同呼籲取消閏秒,美國國家標準與技術研究院(NIST)及國際計量局 ( BIPM )也同意這一主張。閏秒真的要走到盡頭了嗎?

參考資料:https://engineering。fb。com/2022/07/25/production-engineering/its-time-to-leave-the-leap-second-in-the-past/