15P by xguru 2022-07-26 | favorite | 댓글 5개
  • 윤초(Leap Second)는 지구 자전속도 때문에 생기는 UT1(세계시) 과 UTC의 차이를 보정하기 위해 도입됨
  • 이는 UTC를 천체 관측등 다양한 목적으로 사용할 수 있게 해주기 때문에 과학자와 천문학자에게 주로 도움이 됨
  • UTC를 수정하지 않으면 천문 관측을 위해 UTC와 동기화 되는 레거시 장비 및 소프트웨어를 보정 해야함
  • 윤초가 제안된 후 현재까지, UTC는 총 27번 수정 되었음
  • 윤초는 1972년도엔 과학계 및 통신업계를 모두 만족시키는 수용할만한 솔루션이었지만, 현재는 UTC는 디지털 어플리케이션 및 과학자 모두에게 좋지 않음
    → 그들은 종종 TAI(International Atomic Time, 국제원자시)나 UT1을 선택함
  • Meta 는 향후 윤초 도입을 중단하고 현재 수준인 27을 유지하기 위한 업계의 노력을 지원하고 있음
  • 새로운 윤초를 도입하는 것은 득보다 실이 많은 위험한 관행이며, 이를 대체할 새로운 기술을 도입해야 할 때라고 생각

Leap of Faith

  • 지구 자전의 불규칙성에 기여하는 많은 요인 중 하나는 세계에서 가장 높은 산들의 만년설이 계속해서 녹고 다시 얼어 붙는 것
  • 이것은 회전하는 피겨스케이터를 생각해보면 쉽게 시각화 가능
  • 지금까지는 양의 윤초만 있었기에 단순히 23:59:59 와 00:00:00 사이에 23:59:60 이라는 추가 초만 넣으면 되었지만,
    지구의 자전 패턴이 바뀌면서 미래의 어느 시점에서는 음의 윤초가 발생할 가능성이 높음
    그러면 23:59:58 다음에 00:00:00 이 되어야 함.
  • 이 음의 윤초가 주는 영향에 대해서는 대규모로 테스트 된 적이 없으며, 타이머나 스케줄러에 의존하는 소프트웨어에는 치명적인 영향을 미칠 수 있음

Smearing

  • 더 최근에는, 단순히 시계를 늦추거나 빠르게 하여 윤초를 서서히 '입히는(Smear)'게 관행이 되었음
  • 이 작업을 수행하는 보편적인 방법은 없지만, Meta 에서는 윤초를 00:00:00 부터 17시간에 걸쳐서 Smear함
  • 수백대의 NTP 서버들이 같이 Stratum 2에서 진행하므로, 너무 크게 Smearing 하면 NTP 클라이언트들이 오류가 있다고 판단해서 Quorum 에서 빼버리게 되고 이건 Outage가 될 가능성이 있음
  • 00:00:00 에서 시작하는 것도 표준화 된것은 아니어서, 여러 옵션이 있을 수 있음
    → 예를 들어, 특정회사는 12:00:00 UTC 에서 시작해서 24시간동안 진행할 수도 있음
  • 또한 Smearing 자체에도 다른 알고리듬들도 있음 : 커널 윤초 보정, Linear Smearing, Quadratic(Meta가 사용하는 것)
  • 이 모든 일들은 Meta 의 고유한 Time Appliance를 비롯해서 중요한 변환 로직이 필요함
  • 이 Smearing 기간 동안 NTP 서버가 재시작 되면 "Old" 와 "New" 시간들이 클라이언트에게 가면서 Outage가 생길수 있음

The negative impact of Leap Seconds

  • 윤초와 그 오프셋은 업계 전체에 문제를 일으킴
  • Outage가 발생하는 가장 쉬운 방법은 시간이 항상 앞으로만 간다고 생각하고 코딩하는 것

start := time.Now()
// do something
spent := time.Now().Sub(start)

  • 위의 spent 가 어떻게 사용되는지에 따라 윤초기간중에 음수가 발생할 수도 있음
  • Reddit은 2012년에 윤초 때문에 대규모 중단이 발생했고, 사이트가 30~40분동안 접근이 불가능 했음
  • Cloudflare는 2017년에 회사의 공용 DNS에 미치는 영향에 대해서 상세한 글을 게시 했음

Moving beyond the leap second

  • 윤초 이벤트는 업계 전반에 걸쳐 문제를 일으키고 계속해서 많은 위험을 내포하고 있음
  • 현업에서 우리는 윤초가 도입될 때 마다 문제에 부딪힘
  • 그리고 매우 드문 사건이기 때문에 발생할때마다 커뮤니티들이 황폐화 됨
  • 모든 산업분야에서 시계 정밀도에 대한 수요가 증가하면서, 윤초는 이제 득보다 실이 많고, Outage를 초래
  • Meta의 엔지니어로서, 우리는 향후 윤초 도입을 중단하고 다음 천년동안 충분할 것으로 생각하는 현재 수준인 27을 유지하기 위해 큰 지원을 하고 있음

와 엄청 재미난 주제내요! 근데 으음… 윤초를 넣는게 큰 일이라는 건 알겠는데 27초를 유지하기 위해서 어떤 큰 노력을 하고 있는지 이해를 못했어요.

아마 이런 것들을 뜻하는듯 합니다

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

글의 제목이 뭔가 이상합니다

트위터 봇이나 슬랙봇이 보낸 메세지의 제목은 멀쩡한데 사이트에서 보는 건 이상하네요

엇 뭔가 이상했었나 봐요. 수정했습니다.