수락 자 a0이 라운드 k에서 v에 투표했을 때 재산 CP가 유지되었다고 가정 할 수있는 이유는 무엇입니까? 우리는 수학적 유도를 사용하는 것 같습니다. 그러므로 기초, 귀납 가설 및 귀납적 단계는 무엇입니까?
강력한 유도 사례를보고 있습니다. 간단한 유도에서는 속성이 유지한다고 가정 하고 n = m + 1을 유지한다는 것을 증명합니다 . 강력한 유도에서는 속성이 ∀ n : n < m 동안 유지되고 n = m + 1 동안 유지되는 것으로 가정합니다 .n=mn=m+1∀n:n<mn=m+1
근거 (나는 믿는다) : . 즉, 라운드는 1부터 시작하므로 널 라운드입니다. 이것은 사소한 사실이므로 아마도 명시 적으로 언급되지 않은 이유 일 것입니다.j=0
유도 단계 : 가정 ; 증명 C P ( V를 , J + 1 ) 여기서, J < I .∀n,n≤j:CP(v;n)CP(v;j+1)j<i
믿거 나 말거나, 이것은 단지 스케치 일뿐 입니다. 실제 증거는 파트 타임 의회 보고서에 있습니다. (어떤 사람들은 종이를 비밀스러운 것으로 생각하고 다른 사람들은 그것을 유머라고 생각합니다.)
이것은 어떻게 얻습니까?
내 의견으로는, 케이스 의 정확성 증명 은 k < j < i 및 j = k 의 경우에 (재귀 적으로) 의존합니다 .j<kk<j<ij=k
따라서, 어떻게 케이스 결론 지을 수 제 실증없이 J를 = k는 (subcase의 누락, 즉 완전히 J를 = K V가 더 이상 하나 개의 값 포함)?j<kj=kj=kV
이것은 다시 강한 유도이므로, 는 k < j 및 j = k 의 경우에 의존 하지만 유도 가설을 통해 , 즉 이전 Paxos 라운드에서 온다.j<kk<jj=k
Lamport의 증거에 대한 일반적인 팁.
Lamport는 계층 적 증명 기술을 사용합니다. 예를 들어, 7-8 페이지의 증명 구조는 다음과 같습니다.
- 가정 ; 증명 C P ( V를 , J + 1 ) 여기서, J < I .
∀n,n≤j:CP(v;n)CP(v;j+1)j<i
- 관찰 1
- 관찰 2
- 관찰 3
- k=argmax(...)
- 케이스 k = 0
- 케이스 k> 0
- 케이스 k <j
- 케이스 k = j
- 사례 j <k
Lamport는 다른 유형의 계층을 사용하는 경향이 있습니다. 그는 더 간단한 알고리즘을 증명 한 다음 더 복잡한 알고리즘이 더 간단한 알고리즘에 매핑 (또는 "확장" ) 한다는 것을 증명할 것입니다 . 이것은 18 페이지에서 일어나지 않는 것 같지만주의해야합니다. (18 페이지 의 증거는 7-8 페이지의 증거를 수정 한 것으로 보이며 연장 은 아닙니다.)
Lamport는 강력한 유도 에 크게 의존합니다 . 그는 또한 숫자 대신 세트 로 생각하는 경향이 있습니다. 따라서 다른 사람들이 0 또는 null을 갖는 빈 세트를 얻을 수 있습니다. 또는 다른 사람들이 추가 할 수있는 조합을 설정하십시오.
ij<i
a
rnd[a]iai
이러한 종류의 시스템을 입증하는 것은 분명히 뇌 스트레칭입니다.
(업데이트) : 불변량을 나열합니다. Lamport는 개발할 때 많은 변형을 사용하고 그의 증거를 사용합니다. 그들은 때로는 증거 전체에 흩어져 있습니다. 때로는 기계 검사 증명에만 나타납니다. 각 불변에 대한 이유; 왜 거기에 있습니까? 다른 불변량과 어떻게 상호 작용합니까? 시스템의 각 단계는 어떻게이 불변성을 유지합니까?
전체 공개 : 나는 이 질문에 대답 할 때까지 Fast Paxos를 읽지 않았습니다 . 인용 된 페이지 만 보았습니다. 저는 수학자가 아닌 엔지니어입니다. Lamport의 작업에 대한 나의 솔은 순전히 대규모 분산 시스템을 올바르게 발명하고 유지해야 할 필요성에 기초합니다.
내 대답은 Lamport의 작업 경험에 크게 의존합니다. 나는 Lamport의 프로토콜과 증거를 읽었습니다. 저는 전문적으로 paxos 기반 시스템을 유지합니다. 처리량이 많은 컨센서스 프로토콜을 작성하고 입증했으며,이를 기반으로 시스템을 전문적으로 유지 관리합니다 (저는 회사에서 논문을 게시 할 수 있도록 노력하고 있습니다). 내가 한 내가 그를 세 번 만났다있는 램 포트와 하찮은 종이에 공동 (용지가 여전히 피어 리뷰 보류 중입니다.)