논리시계
Logical clock논리시계는 분산형 시스템에서 연대기적, 인과적 관계를 포착하기 위한 메커니즘이다. 분산형 시스템에는 물리적으로 동기식 글로벌 시계가 없을 수 있다. 많은 애플리케이션(예: 분산 GNU 제작)에서 두 프로세스가 상호작용을 하지 않는 경우 동기화 부족은 관찰할 수 없으며 이러한 애플리케이션에서는 프로세스가 월 클럭 시간이 아닌 이벤트 순서(즉, 논리 시계)에 합의하기에 충분하다.[1] 최초의 논리 시계 구현인 램포트 타임스탬프는 1978년 레슬리 램포트에 의해 제안되었다(2013년 튜링 어워드).
로컬 시간 대 글로벌 시간
논리 시계 시스템에서 각 프로세스는 논리적 로컬 시간과 논리적 글로벌 시간이라는 두 가지 데이터 구조를 가진다. 논리적 로컬 시간은 프로세스에서 자체 이벤트를 표시하기 위해 사용되며, 논리적 글로벌 시간은 글로벌 시간에 대한 로컬 정보다. 각 로컬 이벤트 후 논리적 로컬 시간, 프로세스가 데이터를 교환할 때 논리적 글로벌 시간을 업데이트하는 데 특수 프로토콜이 사용된다.[2]
적용들
논리 시계는 계산 분석, 분산 알고리즘 설계, 개별 이벤트 추적 및 계산 진행률 탐색에 유용하다.
알고리즘
주목할 만한 논리 시계 알고리즘은 다음과 같다.
- 소프트웨어 카운터를 단조롭게 늘리는 램포트 타임스탬프.
- 분산 시스템에서 이벤트의 부분 순서를 허용하는 벡터 클럭.
- 버전 벡터, 업데이트에 따라 낙관적인 복제 시스템에서 복제본 정렬
- 매트릭스 클럭은 시스템에 대한 다른 프로세스 뷰에 대한 정보도 포함하는 벡터 클럭의 확장이다.
참조
- ^ "Distributed Systems 3rd edition (2017)". DISTRIBUTED-SYSTEMS.NET. Retrieved 2021-03-20.
- ^ 제3장: 논리적 시간 // Ajay Kshemkalyani 및 Mukesh Singhal, 분산 컴퓨팅: 원리, 알고리즘 및 시스템, 캠브리지 대학교 출판부, 2008
외부 링크
- 분산 시스템 논리적 시간 // Roberto Baldoni, Silvia Bonomi. 로마 사피엔자 대학교 MIDLAB
- 제3장: 논리적 시간 // Ajay Kshemkalyani 및 Mukesh Singhal, 분산 컴퓨팅: 원리, 알고리즘 및 시스템, 캠브리지 대학교 출판부, 2008
- 분산 시스템 06. 논리적 시계 // 폴 크르자노프스키, 러트거스 대학교, 2014년 가을