2013-04-29 2 views
1

불량 알고리즘에 대한 설명은 일반적으로 실제 오류 감지를 다루지 않습니다.불량 알고리즘 - 오류 감지

선거를 실패로 유도하는 대신 실패를 감지하기 위해 선거 자체를 사용하는 불량 알고리즘 구현이 있습니다. 간단히 말해서, 나의 구현에서의 선거는 실패 발견보다는 오히려 스케줄에 따라 수행된다.

분명히 이것은 네트워크 트래픽이 생성되었음을 의미하지만 그렇지 않으면 복잡 할 수있는 간단한 해결책 (예 : 자체 네트워크 트래픽을 갖는 별도의 오류 검색 메커니즘)이있는 것처럼 보입니다.

아무도이 문제를 볼 수 있습니까?

+1

불만 알고리즘은 시스템이 동기식이라고 가정하고 프로세스 실패를 식별하는 데 시간 초과를 사용합니다. -Wikipedia : http://en.wikipedia.org/wiki/Bully_algorithm –

+0

좋아요, 그럼 선거가 시작되는 이유는 (타임 아웃이 선거의 일부로 발생했기 때문입니다)? 다른 말로하면, 모든 노드가 OK이고 선거가 수행되었다고 가정합니다. 다음 선거는 언제 실시됩니까? – Ben

+1

큰 문제는 보이지 않지만 괴롭히기 알고리즘으로 묘사하지는 않습니다. 너무 많이 수정되었습니다. 또한, 귀하의 선거 일정에 따라 더 높은 신분증을 가진 새로운 절차가 선거 사이에 온라인으로 제공 될 위험이 있습니까? 선거 일정을 얼마나 자주 결정합니까? – Vicky

답변

2

분산 시스템에 4 개의 노드 A, B, C 및 D가 있다고 가정합니다. 현재 리더가 A라고 가정합시다. 노드 B, C 또는 D 중 하나가 코디네이터 A가 응답하지 않음을 나타내는 경우에만 선거가 발생합니다. 리더 A의 실패는 메시지 타임 아웃 또는 코디네이터가 핸드 셰이크를 시작하지 못하기 때문에 이해됩니다. 표준 불량 알고리즘의 알고리즘과 달리 선거는 코디네이터 오류가 발생하거나 더 높은 프로세스 ID를 가진 새 노드가 도입 된 경우에만 수행됩니다.

1

일반적으로 리더 선택은 더 이상 리더가 없다는 것을 으로 의심하면으로 시작됩니다. 즉, (로컬) 시간 초과 후입니다. 로컬 시간 초과로 충분하지는 않지만 리더의 예상 조치가 자주 발생합니다.

이 구성표를 적용하면 주기적으로 재선거하거나 특별한 오류를 감지 할 필요가 없습니다.

+0

"지역 시간 초과"란 선거가 미리 정의 된 기간 후에 "세계의 상태를 확인"하기 위해 자동으로 개최된다는 의미입니다. 분명히 선거를위한 다른 방아쇠 (예.알려진 실패가 후보 노드에 전달 될 때). – Ben

+0

글쎄, 그게 내가 지도자의 "예상 된 행동"이라고 언급 한 것이다. 다른 노드 실패 (리더 제외)의 경우 새 선거가 필요하지 않습니다. – Matthias