다섯 살도 알 수 있게 · SRE

합의가 뭐예요?

합의(컨센서스)를 여러 관제실이 손을 들어 과반수로 결정하는 이야기로 풀어봤어요.

관제실 A관제실 B관제실 C내가 당번!아니 나예요둘 다 아닌데요관제실이 여러 곳인데 다 다르게 말해요

관제실이 여러 곳인데 다 다르게 말해요.오늘 당번이 누구인지조차 서로 달라요.

서로 연락 없이 각자 정해요여러 곳이 동시에 각자 정하면 어긋나요

여러 곳이 동시에 각자 정하면 어긋나요.서로 말을 맞추지 않으면 결정이 흩어져요.

ABCDE투표 결과찬성 3 / 전체 5 → 확정과반수(3곳)가 동의해서 "A 기구부터"로 확정!손을 들어 반이 넘으면 확정돼요 — 이게 합의예요

결정할 일이 생기면 손을 들어 과반수로 정해요.찬성이 반을 넘으면(쿼럼) 확정돼요.

홀수로 둬요3, 5처럼요
반이 넘어야 확정과반수(쿼럼)예요
한두 곳이 멈춰도 돼요나머지로 결정 가능해요
새 당번도 같은 방식리더 선출이에요
AB(멈춤)CD모두 같은 기록결정은 하나한두 곳이 멈춰도 나머지로 결정하고, 새 당번 뽑기도 같은 방식이에요

한두 곳이 멈춰도 나머지로 결정할 수 있어요.모두 같은 결정 기록을 갖고, 새 당번 뽑기도 같은 방식이에요.

AB모두 기다려야 해요 — 느려요그래서급한 결정엔 안 써요중요한 결정에만 써요투표가 느려서 아무 데나 쓰진 않아요

투표가 느려요 — 모두 기다려야 해요.그래서 급한 결정엔 안 쓰고, 중요한 결정에만 써요.

한 줄로

합의 = 관제실 여러 곳이 손을 들어 과반수로 하나의 결정을 확정하는 일. 한두 곳이 멈춰도 나머지로 결정할 수 있지만, 그만큼 느려요.

분산 시스템에서 여러 노드가 하나의 값에 동의하도록 만드는 방법이에요. 과반수 동의를 쿼럼이라 부르고, Raft·Paxos 같은 알고리즘이 이를 구현해요. 느리기 때문에 모든 결정이 아니라 리더 선출 같은 중요한 결정에만 써요.

어른들은 이렇게 불러요

합의(컨센서스)
Consensus
관제실 여럿이 손 들어 하나로 정하는 일. 모두가 같은 결정을 갖게 만들어요.
쿼럼
Quorum
확정되려면 넘어야 하는 과반수. 보통 '반 넘게'예요.
리더 선출
Leader election
새 당번을 뽑는 투표. 결정을 뽑는 것과 같은 방식이에요.
Raft/Paxos
Raft / Paxos
합의를 실제로 구현한 알고리즘 이름. 이름만 알아둬도 충분해요.
과반수
Majority
전체의 반을 넘는 수. 쿼럼을 채우는 기준이에요.
분산 합의 비용
Cost of distributed consensus
모두 기다려야 해서 생기는 느림. 그래서 급한 결정엔 안 써요.
스플릿 브레인
Split-brain
합의 없이 둘 다 당번이라 우기는 상태. 합의가 없으면 이런 일이 생겨요. → 두 관제실이 서로 자기가 진짜라고
복제
Replication
원본이 바뀔 때 새 원본을 뽑는 데도 합의가 쓰여요. → 손님 명부를 두 창고에 똑같이
다음 이야기
두 관제실이 서로 자기가 진짜라고 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →