查看原文
其他

程序员狂喜?这东西终于要废除了!

最近在带大家做新项目,欢迎参与

家好,我是鱼皮。最近看到一则大新闻:国际计量大会已正式宣布:废除闰秒

文章来源:詹士/量子位(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 了。。。



欢迎学编程的朋友们加入我的
编程知识星球 ,我会 1 对 1 解决你的问题,并且直播带大家开发完整项目(第三期项目进行中)。可以加微信 yupi1085,备注【加入星球】和自己的情况领取优惠加入星球,不备注不通过,非诚勿扰谢谢。


往期推荐

我的学习小圈子

这周没写代码,竟然在做这件事!

一位非常认真的同学,赞之!

入职东北国企做程序员一个月,感受如何?

好好的系统,为什么要分库分表?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存