本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
决定了!这一秒,程序员们不用再续了!
国际计量大会已正式宣布:废除闰秒。
该消息一经官宣,相当一部分人喜大普奔。
毕竟,各家互联网大厂和其背后的程序员们,苦闰秒久矣:就在今年7月,谷歌Meta微软亚马逊就曾联手倡议废除闰秒。
外界就有调侃说:
没什么事能让Meta、谷歌、微软等巨头同暴躁的Linux之父Linus Torvalds达成一致了,除了闰秒。
难以招架的「闰秒」
闰秒之所以存在,源于人类使用的标准时间计量工具原子钟的一天为86400秒,该数字与实际地球自转一天时间并不完全一致,随时间累积,误差就会慢慢增大。
为保证我们使用的时间与真实地球自转保持同步,1972年开始,人们引入闰秒。
即:
在一年中6月30日或12月31日,以增减一秒方式,进行误差校准。如要加一秒,就在当日23点59分59秒,加一个23点59分60秒。若要减一秒,则在当日23点59分58秒,直接跳到00点00分00秒。
时至今日,这种矫正已进行了27次,均为增秒操作,最近一次,发生在2016年至17年跨年夜。
闰秒调整确实让人类生活节奏与地球保持了同步校准,但给科技行业带来麻烦不小。
一份2016年12月的公告中,阿里云就明确提醒,相关调整可能对客户应用或业务造成一定影响,希望客户阅读相关调整方案,做好风险评估:
目前,科技公司凑合着弄的主流解决方案是——将多出的一秒分成很多个小段,在不影响运行情况下,悄悄插入时间中,将多出来的一秒「抹平」。
谷歌Meta等大厂均在使用此类方法。
当然,也有人选择直接暂停NTP(网络时间协议)服务一秒钟,以此额外增加一秒。
无论用什么方法解决,终归来说,计时程序在系统中牵一发动全身。
每次调整,各家公司都出动大批技术运维来调整时间(如暂时关闭NTP等)、修改程序,避免当中出现bug影响业务。
这当中,出现事故也着实不意外。
2012年Reddit一次系统崩溃就因闰秒而起,时长超半小时。一组运行开源Linux操作系统的机器未能正确处理增添的闰秒,导致一连串服务器停止运行。
Linux之父,Linus Torvalds曾对媒体提起该话题,也表示出对闰秒的无奈:它真的很烦人,且难以在常规环境下测试,就要交付给用户。
闰秒也造成过Cloudflare的服务器崩溃。
在2017年新年,多余的1秒钟让公司的DNS代理软件崩溃并切换到负值,引发了「软件恐慌」。
尽管当时程序员们已提前写好应对程序,但实际运行时,还是出了问题。
不止一两家,浏览器Mozilla、领英、点评网站Yelp、澳洲航空均因闰秒出现过问题。
由于闰秒实在令程序员们脑壳痛,今年7月谷歌、微软、Meta、亚马逊联合倡议废除它。
还找来美国国家标准与技术研究院(NIST)和国际计量局(BIPM),帮他们背书,一同证明「废除」的合理性。
取消,但没立即取消
根据目前披露信息,该项决议计划2035年生效,且维持到2135年。其间,计量学家们也将试图找到更好解决方案。
参会的决策者们补充道,即便百年间以原子钟计量的UTC时间与地球自转的差距超过1分钟,大众体感上也没什么差别。
但不是所有国家都赞成这回的决定,比如俄罗斯。
他们的定位系统GLONASS也需要进行相应调整和重新设计,因此,他们希望闰秒取消时间推迟到2040年。
且该决议还需与国际电信联盟(ITU)达成一致,商议时间预计在2023年底。
最后得提一嘴的是,取消闰秒对码农虽利好,但落地时间为2035年。
也就是说,当取消闰秒时,连00年的码农都到35了。
目前大厂程序员们仍需继续跟闰秒battle下去了。