정족수(쿼럼) 계산기
복제본 수와 읽기·쓰기 쿼럼을 넣으면 W+R>N과 W>N/2를 만족하는지 판정하고 몇 대까지 장애를 버티는지 계산합니다. 짝수 대를 두는 것이 왜 손해인지도 표로 보여 줍니다.
몇 대에 써야 «성공»으로 볼지입니다.
몇 대에게 물어봐야 «최신을 봤다»고 할지입니다.
엄격한 쿼럼을 만족합니다
W 3 · R 3 · N 5
장애 2대까지 읽기·쓰기가 모두 됩니다
| 복제본 | 과반수 | 버티는 장애 | 한 대 더 놓은 값이 있나 |
|---|---|---|---|
| 1대 | 1 | 0 | — |
| 2대 | 2 | 0 | 없음 (그대로) |
| 3대 | 2 | 1 | 있음 (+1) |
| 4대 | 3 | 1 | 없음 (그대로) |
| 5대 | 3 | 2 | 있음 (+1) |
| 6대 | 4 | 2 | 없음 (그대로) |
| 7대 | 4 | 3 | 있음 (+1) |
| 8대 | 5 | 3 | 없음 (그대로) |
| 9대 | 5 | 4 | 있음 (+1) |
사용 방법
- 1복제본 수 N을 넣습니다.
- 2자주 쓰는 조합을 고르거나 쓰기 쿼럼 W와 읽기 쿼럼 R을 직접 넣습니다.
- 3W+R>N과 W>N/2를 만족하는지, 몇 대까지 장애를 버티는지 확인합니다.
- 4표에서 복제본을 한 대 더 놓는 것이 실제로 도움이 되는지 봅니다.
자주 묻는 질문
쓴 집합과 읽은 집합이 반드시 한 대 이상 겹치게 하려는 것입니다. N대 중 W대에 쓰고 R대에서 읽는데 둘을 합친 수가 N보다 크면 겹치지 않게 고를 방법이 없습니다(비둘기집 원리). 그 겹친 한 대가 최신 값을 갖고 있으므로 읽기가 반드시 최신을 봅니다.
두 쓰기가 동시에 성공하는 것을 막습니다. W가 절반 이하이면 서로 겹치지 않는 두 무리에 각각 써서 둘 다 «성공»이 될 수 있고, 나중에 어느 쪽이 최신인지 가릴 수 없게 됩니다. 그래서 쓰기 쿼럼은 과반수 이상이어야 합니다.
홀수로 두는 것이 좋습니다. 과반수는 ⌊N/2⌋+1이고 버티는 장애는 N−과반수인데, 3대는 1대까지 4대도 1대까지 버팁니다. 한 대를 더 놓고도 버티는 힘이 그대로여서, 5대(2대까지)나 7대(3대까지)처럼 홀수로 늘려야 이득이 생깁니다.
읽기가 많으면 W를 크게, 쓰기가 많으면 R을 크게 잡습니다. W=N·R=1이면 읽기가 가장 가볍지만 한 대만 죽어도 쓰기가 멈추고, W=1·R=N이면 그 반대입니다. 균형이 필요하면 W=R=과반수를 씁니다 — 라프트와 주키퍼가 쓰는 방식입니다.
원래 자리의 노드가 죽었을 때 다른 노드에 임시로 써 두고 나중에 넘겨주는 방식입니다(hinted handoff). 가용성은 오르지만 W+R>N이 보장하던 «반드시 겹친다»가 깨져 옛 값을 읽을 수 있습니다. 이 계산기는 엄격한 쿼럼만 다룹니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 엄격한 쿼럼만 다룹니다. 느슨한 쿼럼이나 네트워크가 갈렸을 때 어느 쪽이 쓰기를 계속할지 같은 문제는 이 계산만으로 정해지지 않습니다.
- «버티는 장애 대수»는 노드가 완전히 멈춘 경우를 셉니다. 느리기만 한 노드나 갈린 네트워크는 다르게 다뤄야 합니다.
- 읽기 복구(read repair)나 힌트 넘겨주기 같은 보완 장치는 반영하지 않았습니다. 실제 시스템은 이 조건 위에 그런 장치를 얹습니다.
- W+R>N은 «단일 키»에 대한 보장입니다. 여러 키에 걸친 트랜잭션의 일관성은 별도의 합의 절차가 필요합니다.
- 복제본은 99대까지 계산합니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.