버전 벡터
Version vector버전 벡터는 여러 에이전트가 서로 다른 시간에 데이터를 업데이트할 수 있는 분산 시스템의 데이터 변경을 추적하는 메커니즘입니다.버전 벡터를 사용하면 참가자는 어떤 업데이트가 다른 업데이트보다 먼저 이루어졌는지(해프닝 전), 후속 업데이트인지 또는 두 업데이트가 동시에 이루어졌는지(따라서 서로 충돌할 수 있음) 판단할 수 있습니다.이와 같이 버전 벡터는 데이터 복제본 간의 인과관계 추적을 가능하게 하며, 최적의 복제를 위한 기본 메커니즘입니다.수학적 용어로 버전 벡터는 후속 업데이트에 선행하여 영향을 미칠 수 있는 이벤트를 추적하는 사전 순서를 생성합니다.
버전 벡터는 벡터 클럭과 동일한 상태를 유지하지만 업데이트 규칙은 약간 다릅니다.이 예에서는 복제본이 로컬업데이트(예를 들어 로컬노드의 파일 편집)를 하거나 다른 복제본과 동기화할 수 있습니다.
- 처음에는 모든 벡터카운터가 0입니다.
- 복제본은 로컬 업데이트 이벤트가 발생할 때마다 벡터 내의 자체 카운터를 1씩 증가시킵니다.
- 2개의 복제 a와 b가 동기화될 때마다 V [ ] [ ] ( [ , [ = { V _ { a }[ x ] = < display style V _ { }[ x ] 동기화 후 두 복제본의 버전 벡터가 동일합니다.
복제품 쌍 a, b를 비교하려면 버전 벡터를 조사하여 동일( \ a ), 동시( b \ a \ ) 또는 < \ a \ ) 중 를 선택합니다.순서 관계는 a <b \ <b로 정의됩니다.의 요소가 의 하는 요소보다 작거나 , 적어도1개의 요소가 엄밀하게 다음 값보다 작을 경우에만 가능합니다.a< \ a < >b < \ b <>가 모두 동일하지 않은 경우, 2개의 벡터가 동시에 존재해야 합니다.
버전[1] 벡터 또는 변형은 Coda(파일 시스템) 및 Ficus와 같은 많은 분산 파일 시스템의 업데이트를 추적하는 데 사용되며, 최적의 [2]복제의 주요 데이터 구조입니다.
기타 메커니즘
- 해시 내역은 업데이트된 각 버전의 해시 집합을 유지하고 집합 포함을 통해 이러한 집합을 비교함으로써 카운터의 사용을 방지합니다.그러나 이 메커니즘은 확률론적 보장만 제공할 수 있다.
- 간결한 버전 벡터를 사용하면 파일 시스템의 디렉토리 구조 등 여러 개의 복제된 항목을 처리할 때 공간을 대폭 절약할 수 있습니다.
- 버전 스탬프는 다양한 수의 복제본을 추적할 수 있으며 카운터에 의존하지 않습니다.이 메커니즘은 일부 설정에서 scalability 문제를 나타낼 수 있지만 Interval Tree Clocks로 대체할 수 있습니다.
- Interval Tree[6] Clocks는 버전 벡터와 벡터 클럭을 일반화하고 복제본/프로세스의 동적 개수를 허용합니다.
- 제한 버전 벡터는 복제 쌍이[7] 원자적으로 동기화될 수 있는 한 제한 크기 카운터를 사용하여 제한 구현을 허용합니다.
- 닷이 있는 버전 벡터는 다수의 동시 클라이언트에 의한 복제 접근을 중개하는 소규모 서버 세트에서의 확장성을 나타냅니다.
레퍼런스
- ^ 더글라스 파커, 제럴드 포펙, 제라드 루디신, 앨런 스토튼, 브루스 워커, 에블린 월튼, 조안나 차우, 데이비드 에드워즈, 스티븐 키저, 찰스 클라인.분산 시스템에서 상호 불일치 탐지.소프트웨어 엔지니어링에 관한 트랜잭션. 1983
- ^ 데이비드 래트너, 피터 라이허, 제럴드 포펙.동적 버전 벡터 유지 보수.테크니컬 리포트 CSD-970022, 캘리포니아 대학교 컴퓨터 과학부, 1997년, 로스앤젤레스
- ^ 강병훈, 로버트 윌렌스키, 존 쿠비토비치.상호 불일치를 조정하기 위한 해시 기록 접근법입니다.ICDCS, 페이지 670-677, IEEE Computer Society, 2003.
- ^ 달리아 말키와 더그 테리.WinFS의 간결한 버전 벡터분산 컴퓨팅, Vol. 20, 2007.
- ^ 파울로 알메이다, 카를로스 바케로, 빅토르 폰테.버전 스탬프:분산 버전 벡터ICDCS, 544-551, 2002.
- ^ 파울로 알메이다, 카를로스 바케로, 빅토르 폰테.인터벌 트리 클럭OPODIS, 컴퓨터 과학 강의 노트, 제5401, 259-274페이지, 스프링거, 2008.
- ^ 호세 알메이다, 파울로 알메이다, 카를로스 바케로.제한 버전 벡터.디스크: 분산 컴퓨팅에 관한 국제 심포지엄, LNCS, 2004.
- ^ 누노 프레귀사, 카를로스 바케로, 파울로 알메이다, 빅토르 폰테, 리카르도 곤살베스.간단한 발표: 닷이 있는 버전 벡터를 사용한 분산 스토리지 시스템의 효율적인 인과관계 추적.ACM PODC, 페이지 335-336, 2012.