Agora é hora de deixar o "segundo intercalar" no passado
(engineering.fb.com)- O segundo intercalar (Leap Second) foi introduzido para corrigir a diferença entre o UT1 (Tempo Universal) e o UTC causada pela velocidade de rotação da Terra
- Isso permite usar o UTC para diversos fins, como observações astronômicas, sendo útil principalmente para cientistas e astrônomos
- Sem ajustes no UTC, seria necessário corrigir equipamentos e softwares legados sincronizados com UTC para observações astronômicas
- Desde que o segundo intercalar foi proposto até hoje, o UTC foi ajustado um total de 27 vezes
- Em 1972, o segundo intercalar era uma solução aceitável que atendia tanto a comunidade científica quanto o setor de telecomunicações, mas hoje o UTC não é bom nem para aplicações digitais nem para cientistas
→ Eles frequentemente escolhem TAI (International Atomic Time, Tempo Atômico Internacional) ou UT1 - A Meta apoia os esforços da indústria para interromper a introdução de futuros segundos intercalares e manter o total atual em 27
- Introduzir um novo segundo intercalar é uma prática arriscada que traz mais prejuízos do que benefícios, e acreditamos que é hora de adotar novas tecnologias para substituí-lo
Leap of Faith
- Um dos muitos fatores que contribuem para a irregularidade da rotação da Terra é o fato de o gelo permanente das montanhas mais altas do mundo continuar derretendo e congelando novamente
- Isso pode ser visualizado facilmente se pensarmos em uma patinadora artística girando
- Até agora só existiram segundos intercalares positivos, então bastava inserir um segundo extra, 23:59:60, entre 23:59:59 e 00:00:00, mas,
ao mudar o padrão de rotação da Terra, é provável que em algum momento do futuro ocorra um segundo intercalar negativo
Nesse caso, depois de 23:59:58 viria 00:00:00. - O impacto desse segundo intercalar negativo nunca foi testado em larga escala e pode ter efeitos fatais em softwares que dependem de timers ou schedulers
Smearing
- Mais recentemente, tornou-se prática comum simplesmente atrasar ou adiantar gradualmente o relógio para "aplicar" (smear) o segundo intercalar
- Não existe um método universal para fazer isso, mas na Meta o segundo intercalar é aplicado por smear ao longo de 17 horas a partir de 00:00:00
- Como centenas de servidores NTP fazem isso juntos no Stratum 2, se o smearing for grande demais os clientes NTP podem considerar que há erro, removê-los do quorum, e isso pode virar uma outage
- Começar em 00:00:00 também não é algo padronizado, então pode haver várias opções
→ Por exemplo, uma determinada empresa pode começar às 12:00:00 UTC e fazer isso ao longo de 24 horas - Além disso, o próprio smearing também tem algoritmos diferentes: ajuste de segundo intercalar no kernel, Linear Smearing, Quadratic (usado pela Meta)
- Tudo isso exige lógica de conversão importante, inclusive no Time Appliance proprietário da Meta
- Se o servidor NTP reiniciar durante esse período de smearing, tempos "Old" e "New" podem ser enviados aos clientes, causando uma outage
The negative impact of Leap Seconds
- O segundo intercalar e seu offset causam problemas em toda a indústria
- A maneira mais fácil de provocar uma outage é programar assumindo que o tempo sempre avança para a frente
start := time.Now()
// do something
spent := time.Now().Sub(start)
- Dependendo de como esse
spentfor usado, ele pode até ficar negativo durante o período do segundo intercalar - O Reddit sofreu uma grande interrupção em 2012 por causa do segundo intercalar, e o site ficou inacessível por 30 a 40 minutos
- A Cloudflare publicou em 2017 um texto detalhado sobre o impacto disso no DNS público da empresa
Moving beyond the leap second
- Eventos de segundo intercalar causam problemas em toda a indústria e continuam envolvendo muitos riscos
- Na prática, esbarramos em problemas toda vez que um segundo intercalar é introduzido
- E, por ser um evento muito raro, as comunidades acabam sendo devastadas toda vez que ele acontece
- Com a crescente demanda por precisão de relógio em todos os setores, o segundo intercalar agora traz mais prejuízo do que benefício e provoca outages
- Como engenheiros da Meta, damos forte apoio à interrupção da introdução de futuros segundos intercalares e à manutenção do nível atual de 27, que consideramos suficiente para o próximo milênio
5 comentários
Uau, que tema incrivelmente interessante! Mas hmm… entendi que inserir um segundo bissexto é algo importante, só que não consegui entender que grande esforço está sendo feito para manter esses 27 segundos.
Acho que provavelmente está se referindo a estas coisas.
https://pt.news.hada.io/topic?id=1752
O título do texto está meio estranho.
O título da mensagem enviada pelo bot do Twitter ou do Slack está normal, mas quando vejo no site ele fica estranho.
Ops, parece que havia algo estranho. Corrigi.