Chang 및 Roberts 알고리즘
Chang and Roberts algorithmChang and Roberts[1] 알고리즘은 링 기반의 코디네이터 선택 알고리즘으로 분산 컴퓨팅에 사용됩니다.
알고리즘
알고리즘에서는 각 프로세스가 Unique Identification(UID; 고유 식별)을 가지며 각 프로세스에서 시계방향 네이버로 가는 통신채널을 가진 단일방향 링으로 프로세스 자체를 배치할 수 있다고 가정합니다.두 부분 알고리즘은 다음과 같이 설명할 수 있습니다.
- 처음에 링 내의 각 프로세스는 비참여자로 표시됩니다.
- 리더가 부족하다는 것을 알아차린 과정이 선거를 시작합니다.UID가 포함된 선거 메시지가 생성됩니다.그런 다음 이 메시지를 시계 방향으로 인접 라우터에 보냅니다.
- 프로세스가 선거 메시지를 전송 또는 전송할 때마다 프로세스 자체도 참여자로 표시됩니다.
- 프로세스는 선택 메시지를 수신하면 메시지 내의 UID를 자체 UID와 비교합니다.
- 선거 메시지의 UID가 클 경우 프로세스는 무조건 시계 방향으로 선거 메시지를 전송합니다.
- 선택 메시지 내의 UID가 작고 프로세스가 아직 참가자가 아닌 경우 프로세스는 메시지 내의 UID를 자체 UID로 대체하고 업데이트된 선택 메시지를 시계 방향으로 보냅니다.
- 선거 메시지 내의 UID가 작고 프로세스가 이미 참가자인 경우(즉, 프로세스가 자신의 UID만큼 큰 UID를 가진 선거 메시지를 이미 발송한 경우) 프로세스는 선거 메시지를 폐기합니다.
- 착신 선택 메시지 내의 UID가 프로세스의 UID와 같은 경우, 그 프로세스는 리더로서 기능하기 시작합니다.
프로세스가 리더로서 동작하기 시작하면 알고리즘의 두 번째 단계가 시작됩니다.
- 리더 프로세스는 자신을 비참여자로 마크하고 선출 및 UID를 알리는 선출된 메시지를 인접 라우터에 보냅니다.
- 프로세스는 선택된 메시지를 수신하면 자신을 비참여자로 마크하고 선택된 UID를 기록하고 선택된 메시지를 변경하지 않고 전송합니다.
- 선출된 메시지가 새로 선출된 리더에 도달하면 리더는 해당 메시지를 폐기하고 선거는 종료됩니다.
장애가 없다고 가정하면 이 알고리즘은 종료됩니다.이 알고리즘은 임의의 수의 프로세스N에 대해 기능하며 링 내에 몇 개의 프로세스가 있는지 알기 위해 어떤 프로세스도 필요하지 않습니다.
특성.
이 알고리즘은 안전성을 존중합니다.프로세스가 자신의 UID가 다른 UID보다 큰 경우에만, 그리고 모든 프로세스가 동일한 UID에 동의하는 경우에만 프로세스가 자체 UID로 선택된 메시지를 수신합니다.이 알고리즘은 라이브도 존중합니다."참가자" 및 "참가자가 아님" 상태는 여러 프로세스가 선거를 거의 동시에 시작할 때 단일 당선자만 발표되도록 사용됩니다.
선거를 시작하는 단일 프로세스가 있는 경우 알고리즘은 최악의 경우 3N-1 순차 메시지를 요구합니다.최악의 경우로는 선출을 시작하는 프로세스가 UID가 가장 큰 프로세스 바로 다음에 이어지는 경우입니다.선택 메시지가 도달하려면 N-1 메시지가 필요하고, 그 후 N 메시지가 반환되어 자신의 UID가 반환되고, 그 외의 N 메시지가 호출음 내의 모든 사용자에게 선택 메시지를 보냅니다.
이 알고리즘은 폴트 톨러런스가 별로 없습니다.모든 프로세스가 토폴로지 전체를 인식하고 있는 경우 ACK 메시지를 도입하고 메시지 전송 시 장애가 있는 노드를 건너뛰면 폴트 톨러런스를 높일 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Ernest Chang; Rosemary Roberts (1979), "An improved algorithm for decentralized extrema-finding in circular configurations of processes", Communications of the ACM, ACM, 22 (5): 281–283, doi:10.1145/359104.359108
{{citation}}: CS1 maint: 여러 이름: 작성자 목록(링크)