리더가 둘이었다 · 타이머가 같으면 아무도 이기지 못한다 · 퀴즈
퀴즈: 임기와 투표
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
Raft 에서 임기(term)가 하는 일로 가장 정확한 설명은?
- 노드가 살아 있는 시간을 재어 장애를 감지한다
- 1씩 오르기만 하는 논리 시계로, 어느 정보가 더 최신인지 가른다
- 로그 항목의 순서를 정하는 자리 번호 역할을 한다
- 리더가 팔로워에게 보내는 심장박동의 간격을 정한다
팔로워가 임기 5에서 이미 2번 노드에게 투표했다. 같은 임기 5로 3번 노드가 투표를 요청하면?
- 거절한다 — 한 임기에 한 표만 준다
- 더 최근 요청이므로 3번에게 준다
- 임기를 6으로 올리고 둘 다에게 준다
- 두 후보의 로그 길이를 비교해 긴 쪽에 준다
4노드 클러스터에서 후보가 자기 표를 포함해 2표를 받았다. 리더가 되는가?
- 된다 — 절반을 채웠다
- 된다 — 남은 둘이 응답하지 않았으므로 기권으로 본다
- 되지 않는다 — 과반은 절반 초과이므로 3표가 필요하다
- 되지 않는다 — 짝수 클러스터에서는 선거가 열리지 않는다
세 노드의 선거 타임아웃을 모두 같은 값으로 고정하면 무슨 일이 일어나는가?
- 선거가 더 빨리 끝난다 — 셋이 동시에 판단하기 때문
- 첫 선거만 실패하고 두 번째부터는 정상이 된다
- 타임아웃이 짧은 쪽이 항상 이겨 리더가 고정된다
- 셋이 동시에 후보가 되어 표가 갈리고 임기만 계속 오른다
임기 9인 팔로워가 임기 5인 리더로부터 심장박동을 받았다. 올바른 처리는?
- 거절하고 자기 임기 9를 그대로 유지한다
- 임기를 5로 맞추고 그 리더를 따른다
- 임기를 10으로 올리고 곧바로 선거를 연다
- 심장박동은 임기를 보지 않으므로 그대로 받아들인다
후보가 투표를 요청했는데 같은 후보가 같은 임기로 한 번 더 요청해 왔다. 이미 그 후보에게 표를 준 상태라면?
- 거절한다 — 중복 요청은 공격일 수 있다
- 같은 답을 다시 준다 — 응답이 유실된 재전송일 수 있다
- 임기를 하나 올려 새 선거를 연다
- 표를 회수하고 아무에게도 주지 않은 상태로 되돌린다