Quorum이란? 분산 시스템에서 과반수로 합의하는 이유

Quorum이란 무엇인가

Quorum(쿼럼)은 분산 시스템에서 여러 노드 중 ‘충분한 수’의 노드가 동의해야 어떤 작업을 유효하다고 인정하는 방식입니다. 원래 이 단어는 회의체에서 의결이 성립하기 위한 최소 참석 인원을 뜻하는데, 분산 시스템에서도 비슷하게 쓰입니다. 예를 들어 아파트 입주자 대표회의에서 전체 인원의 절반 이상이 참석해야 결의가 유효하듯, 분산 데이터베이스에서도 전체 노드 중 과반수 이상이 동의해야 데이터 쓰기나 읽기가 확정됩니다.

과반수 합의의 동작 원리

보통 노드 개수를 N, 쓰기에 필요한 최소 응답 수를 W, 읽기에 필요한 최소 응답 수를 R이라고 표현합니다. 이때 W + R > N 조건을 만족하면 읽기와 쓰기 결과가 서로 겹치는 노드를 최소 한 곳 이상 포함하게 되어 최신 데이터를 읽을 확률이 높아집니다. 예를 들어 노드가 5개(N=5)인 시스템에서 쓰기 시 3개 노드(W=3)의 응답을 받고 확정한다면, 읽기 시에도 최소 3개 노드(R=3)를 조회해야 안전합니다. 이렇게 하면 W와 R이 겹치는 노드가 반드시 하나 이상 생겨, 오래된 데이터만 모아서 잘못된 결과를 반환하는 상황을 막을 수 있습니다.

  • N: 전체 복제본(노드) 수
  • W: 쓰기 성공에 필요한 최소 응답 수
  • R: 읽기 시 확인해야 하는 최소 노드 수

실무에서 Quorum을 쓰는 이유

분산 시스템은 네트워크 단절이나 노드 장애로 일부 노드끼리만 통신 가능한 ‘스플릿 브레인’ 상황이 생길 수 있습니다. 이때 과반수 규칙이 없다면 두 그룹이 각자 자신이 맞다고 주장하며 서로 다른 데이터를 기록해버릴 위험이 있습니다. 하지만 전체 노드의 절반을 초과하는 그룹은 동시에 두 개가 존재할 수 없기 때문에, 과반수 동의를 요구하면 항상 하나의 그룹만 유효한 결정을 내리게 됩니다. 이런 이유로 Kafka, Cassandra, ZooKeeper, Raft/Paxos 기반 시스템들이 리더 선출이나 데이터 일관성 확보에 Quorum 개념을 핵심 원리로 사용하고 있습니다.

댓글 남기기