상세 컨텐츠

본문 제목

Google True Time(구글 트루 타임)

Log.Develop/Other

by bluayer 2022. 6. 10. 10:53

본문

서론

데이터 중심 어플리케이션 책을 읽으면서 스터디 하던 중, Google True Time에 관한 이야기가 나왔다.
해당 내용이 더 궁금해서 찾아본 내용을 정리했다.

https://bluayer.com/60

Chapter 8. 분산 시스템의 골칫거리 - Part 1

소개 본 글은 데이터 중심 어플리케이션(마틴 클레프만)으로 스터디하며 해당 책의 내용을 요약 정리한 내용입니다. https://github.com/ddia-study/ddia-study GitHub - ddia-study/ddia-study: 데이터 중심 어플..

bluayer.com

Google True Time API란?

분산 시스템 내에서 시계는 물리적이든, 논리적이든 잘못될 가능성이 매우 높다.

시계 읽기를 어떤 시점으로 생각하는 것은 타당하지 않기 때문에 어떤 신뢰 구간에 속하는 시간의 범위로 읽는 게 나을 것이다.
라는 것이 True Time의 기본적인 아이디어다.
따라서 True TIme은 해당 시계의 신뢰구간을 제시하는 방식으로 설계되어 있다.

참고로 True Time은 Google Spanner 내부에서 사용되고 있다고 한다.
https://cloud.google.com/spanner

Cloud Spanner  |  Google Cloud

무제한 확장, 강력한 일관성, 최대 99.999%의 가용성을 갖춘 완전 관리형 관계형 데이터베이스입니다.

cloud.google.com

Google True Time 는 어떻게 만들어져 있나?

  • TrueTime API는 atomic clockGPS를 참조
  • GPS 시계도 오류가 날 수 있는 이유가 많다고 함 (안테나/수신기 오류, 로컬 무선 간섭, 스푸핑 등등)
  • Data Center(이하 DC)당 time master 머신 세트, 머신당 time slave 데몬로 구현되어 있음. 마스터에는 GPS 수신기가 있다고 함
  • 전용 안테나가 있는 마스터가 따로 있고, 얘는 간섭을 이유로 물리적으로 분리되어 있음. 해당 마스터 이외의 마스터는 atomic clock을 장비하고 있고, 이를 Armageddon masters(아마겟돈 마스터) 라고 함
  • 모든 데몬이 여러 마스터로부터 polling 함. 한 마스터의 오류에 대한 취약성을 줄이기 위해서.
  • 마스터, 데몬 둘다 로컬 시계가 잘못됐다고 여겨지면 evict(축출) 시키는 로직도 존재

True Time에서 적합한 신뢰 구간을 찾기 위해서 사용하는 알고리즘 : Marzullo's algorithm

Marzullo's algorithm is efficient in terms of time for producing an optimal value from a set of estimates with confidence intervals where the actual value may be outside the confidence interval for some sources. - https://en.wikipedia.org/wiki/Marzullo%27s_algorithm



원본 논문 :
https://static.googleusercontent.com/media/research.google.com/ko//archive/spanner-osdi2012.pdf
해당 논문의 5~6pg에 있는 내용을 정리한 것.

관련글 더보기

댓글 영역