15 pontos por xguru 2022-07-26 | 5 comentários | Compartilhar no WhatsApp
  • 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 spent for 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

 
galadbran 2022-07-26

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.

 
budlebee 2022-07-26

Acho que provavelmente está se referindo a estas coisas.

https://pt.news.hada.io/topic?id=1752

 
dodok8 2022-07-26

O título do texto está meio estranho.

 
dodok8 2022-07-26

O título da mensagem enviada pelo bot do Twitter ou do Slack está normal, mas quando vejo no site ele fica estranho.

 
xguru 2022-07-26

Ops, parece que havia algo estranho. Corrigi.