다섯 살도 알 수 있게 · SRE
합의가 뭐예요?
합의(컨센서스)를 여러 관제실이 손을 들어 과반수로 결정하는 이야기로 풀어봤어요.
관제실이 여러 곳인데 다 다르게 말해요.오늘 당번이 누구인지조차 서로 달라요.
여러 곳이 동시에 각자 정하면 어긋나요.서로 말을 맞추지 않으면 결정이 흩어져요.
결정할 일이 생기면 손을 들어 과반수로 정해요.찬성이 반을 넘으면(쿼럼) 확정돼요.
홀수로 둬요3, 5처럼요
반이 넘어야 확정과반수(쿼럼)예요
한두 곳이 멈춰도 돼요나머지로 결정 가능해요
새 당번도 같은 방식리더 선출이에요
한두 곳이 멈춰도 나머지로 결정할 수 있어요.모두 같은 결정 기록을 갖고, 새 당번 뽑기도 같은 방식이에요.
투표가 느려요 — 모두 기다려야 해요.그래서 급한 결정엔 안 쓰고, 중요한 결정에만 써요.
한 줄로
합의 = 관제실 여러 곳이 손을 들어 과반수로 하나의 결정을 확정하는 일. 한두 곳이 멈춰도 나머지로 결정할 수 있지만, 그만큼 느려요.
분산 시스템에서 여러 노드가 하나의 값에 동의하도록 만드는 방법이에요. 과반수 동의를 쿼럼이라 부르고, Raft·Paxos 같은 알고리즘이 이를 구현해요. 느리기 때문에 모든 결정이 아니라 리더 선출 같은 중요한 결정에만 써요.
어른들은 이렇게 불러요
- 합의(컨센서스)
Consensus - 관제실 여럿이 손 들어 하나로 정하는 일. 모두가 같은 결정을 갖게 만들어요.
- 쿼럼
Quorum - 확정되려면 넘어야 하는 과반수. 보통 '반 넘게'예요.
- 리더 선출
Leader election - 새 당번을 뽑는 투표. 결정을 뽑는 것과 같은 방식이에요.
- Raft/Paxos
Raft / Paxos - 합의를 실제로 구현한 알고리즘 이름. 이름만 알아둬도 충분해요.
- 과반수
Majority - 전체의 반을 넘는 수. 쿼럼을 채우는 기준이에요.
- 분산 합의 비용
Cost of distributed consensus - 모두 기다려야 해서 생기는 느림. 그래서 급한 결정엔 안 써요.
- 스플릿 브레인
Split-brain - 합의 없이 둘 다 당번이라 우기는 상태. 합의가 없으면 이런 일이 생겨요. → 두 관제실이 서로 자기가 진짜라고
- 복제
Replication - 원본이 바뀔 때 새 원본을 뽑는 데도 합의가 쓰여요. → 손님 명부를 두 창고에 똑같이
다음 이야기
두 관제실이 서로 자기가 진짜라고 →