2014-01-26 2 views
4

예를 들어 키 값 저장소 업데이트에 업데이트 충돌이 있는지를 알 수있는 충분한 정보를 제공하지 못하는 스칼라 논리적 클럭의 관점에서 벡터 시계의 필요성을 알고 있습니다.매트릭스 시계는 무엇을 해결하지만 벡터 시계는 해결할 수 없습니까?

그러나 어떤 문제가 여전히 벡터 시계에 의해 해결되지 않았는지 확실하지 않고보다 부피가 큰 매트릭스 시계로 해결할 수 있습니까?

답변

4

최종 일관성 환경에서 모든 피어가 메시지 (== 최종 일관성)를 수신 할 때까지 시스템에 의해 작성된 모든 메시지는 유지되어야합니다. 그러나 당신은 메시지를 영원히 간직하고 싶지 않기 때문에 모든 노드가 어떤 메시지를 받았는지 알려주고 삭제할 수있는 방법이 필요합니다. 이것이 매트릭스 클럭을 사용하는 이유입니다.

매트릭스 클럭은 벡터 클럭의 목록이므로 시스템의 각 노드의 현재 상태를 알 수 있습니다. 이것을 기반으로 어떤 피어가 이미 어떤 메시지를 받았는지 알 수 있습니다. 시스템의 다른 노드와 메시지를 교환 할 때 매트릭스 시계를 비교하고 각 노드에 대해 항상 가장 높은 값을 기억합니다. 나중에 노드가 이미 수신 했어야하기 때문에 전에 전송 된 메시지를 삭제할 수 있습니다.

이것은 TSAE (timestamped anti-entropy) 프로토콜에 대한 간단한 설명입니다. 논문 프로젝트에서 그것에 대해 더 많은 것을 읽을 수 있습니다. 리차드 앤드류 골딩 (Richard Andrew Golding)에 의한 제 5 장부터 시작하는 1992 년 (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.7385&rep=rep1&type=pdf)의 약 일관성 그룹 커뮤니케이션 및 회원 가입.

+0

다른 노드 벡터 시계의 사용을 통해 궁극적으로 무엇을 알고 당신이 밖으로 찾을 수 없습니다? (또는 더 오래 걸리고 메시지의 수가 훨씬 길어질 것입니까?) –

+1

예, 벡터 시계를 얻고 그들이 무엇을 알고 있는지 알기 위해서는 모든 노드 P2P와 대화해야합니다. 매트릭스는 당신이 통신하는 모든 노드의 정보를 알려줍니다. – peter

1

Lamport 클럭과 임기의 스칼라 논리적 클럭 벡터 시계 및 매트릭스 시계는 지식의 서로 다른 레벨 인을 나타냅니다.

벡터 시계 $ vt_i [1 \ ldots n] $ 사이트 $ i $의 항목 $ vt_i [k] $는 사이트 $ S_i $가 사이트 $ S_k $에 대한 지식을 나타냅니다. 지식은 "$ i $는 $ k $ 그 $ \ ldots $"를 알고 있습니다.

$ mt_i [1 \ ldots n, 1 \ ldots n] $ 사이트의 사이트 $ S_i $에서 $ mt_i [k, l] $ 항목은 $ S_i $ 사이트가 지식에 대해 가지고있는 지식을 나타냅니다. 사이트 $ S_l $에 대한 $ S_k $. 여기서 지식은 "$ i $는 $ k $를 알고 있습니다. $ l $는 $ \ ldots $"를 알고 있습니다.

직관적으로, 우리는 더 많은 지식을 가지고 더 많은 일을 할 수 있습니다.

벡터 시계 및 시계 매트릭스 널리 분산 비동기 메시지 전달 시스템에 사용된다

다음의 설명은 주로

[1]에서 인용된다.

벡터 시계를 사용하는 일부 예제 영역은 검사 점, 인과적인 메모리, 복제 된 파일의 일관성 유지, 전역 ​​스냅 샷, 전역 시간 근사, 종료 감지, 공유 변수의 한정된 다중 기록기 작성, 상호 제외 및 디버깅 (조건부 탐지)입니다.

매트릭스 클럭을 사용하는 일부 예제 영역에서는 분산 데이터베이스에서 쓸모없는 정보를 삭제하는 프로토콜과 복제 된 로그 및 복제 된 사전 문제를 해결하는 프로토콜을 포함하여 내결함성 프로토콜 및 분산 데이터베이스 프로토콜을 설계하고 있습니다. 매트릭스 클럭

, 우리 는 $ min_k (mt_i는 [K, 난]) \ GE는 t $으로 $ S_i $ 다른 모든 사이트 $ k에 $으로 로컬 타임 $까지 진행 상황을 알고 있다는 것을 알 사이트를 의미 알 t $.

사이트가 더 이상 현지 시간 $ \ le t $로 정보를 보내지 않거나 쓸모없는 정보를 버릴 수 없도록하는 것이이 속성입니다.

[1] Concurrent Knowledge and Logical Clock Abstractions Ajay D. Kshemkalyani 2000

관련 문제