2011-08-23 4 views
9

Paxos 알고리즘은 2F + 1 프로세서를 사용할 때 F 실패까지 허용 할 수 있습니다. 내가 아는 한,이 알고리즘은 고정 된 수의 프로세서에서만 작동합니다. 노드가 동적으로 추가되고 제거 될 수있는 동적 환경에서이 알고리즘을 사용할 수 있습니까?동적 환경에서 Paxos 사용

답변

-1

예. Gryadka은 500 줄의 동적 재구성을 지원하는 JavaScript Paxos 구현입니다. Vertical Paxos 및 Raft의 아이디어를 기반으로합니다.

+0

클러스터 멤버십을 위해 Paxos를 확장해야한다는 믿음은 매우 불안정합니다. 아래의 @ Mateusz의 대답에서 논의 된 Dynamic Paxos의 Microsoft 종이 버전으로 충분합니다. Paxos의 모든 실제 구현 업데이트 된 상태를 일관된 방식으로 알고 있습니다. 공유 상태는 앱 상태와 클러스터 멤버쉽이 될 수 있습니다. 따라서 새로운 접근법을 읽고 이해하고 구현하기보다는 모든 실질적인 함의는 클러스터 멤버쉽 변경을 처리하기 위해 "메인 스트림 Paxos"와 "자신의 개밥 먹기"를 사용할 수 있습니다. Paxos는이를 위해 설계되었습니다. – simbo1905

1

노드의 절대 개수가있는 경우에도 계속 작동해야합니다. 그러나 동적 노드 수를 6으로 설정하면 최대 값은 11이므로 1 개의 노드에 오류가 발생하면 기본적으로 존재하지 않는 노드는 작동하지 않습니다. 노드를 제거하고 추가하는 경우 추가 한 노드로 제거한 노드의 상태를 복원하여 실패로 간주되지 않도록 할 수 있습니다.

5

예, 일부 서류가있을 수도 있습니다. 내가 기억하는 것에서 나는 그것을하는 방법에 대해 조금 읽었다. 여기에 설명되어있다. http://research.microsoft.com/pubs/64634/web-dsn-submission.pdf 그게 네가 요구하고 있었던 것이기를 바란다. "동적 인 paxos"를 찾으십시오.

+0

동적 인 paxos는 다소 희소합니다 :) – Lazin

+0

@Lazin 실제로는 아닙니다! 나는 동적 인 Paxos를 사용하며 매우 안정적입니다. 두 개의 상태 머신이 있다는 아이디어입니다. 첫번째는 당신이 일반적으로 생각하는 것입니다 : Paxos 주 (州)는 동기화 상태를 유지해야합니다. 다른 상태 시스템은 노드의 구성원 목록입니다. Paxos의 모든 인스턴스는 구성원 상태 시스템의 스냅 샷을 사용해야합니다. –

+0

@MichaelDeardeuff 멀티 팩소스를 소개하면 다이내믹 한 Paxos가 약간 무서워집니다. 단일 인스턴스 Paxos와 함께 사용하면 상당히 간단합니다. –

관련 문제