컨시스턴트 해싱 재배치 계산기
노드 수를 바꿀 때 옮겨야 하는 키의 비율을 모듈러 샤딩과 해시 링으로 나란히 계산합니다. 가상 노드에 따른 부하 편차도 함께 냅니다.
캐시 항목이나 레코드의 수입니다. 몰라도 비율은 나옵니다
10대 → 11대로 바꿀 때 옮겨야 하는 키
모듈러 90.9% · 해시 링 9.1%
모듈러 샤딩이 해시 링보다 10배 더 옮깁니다
노드를 한 대씩 늘려 갈 때 (해시 링 기준)
| 변경 | 모듈러 | 해시 링 |
|---|---|---|
| 10 → 11대 | 90.9% | 9.1% |
| 10 → 12대 | 83.3% | 16.7% |
| 10 → 13대 | 92.3% | 23.1% |
| 10 → 14대 | 85.7% | 28.6% |
| 10 → 15대 | 66.7% | 33.3% |
노드 하나를 원 위에 몇 개의 점으로 쪼개 뿌릴지입니다
가상 노드를 늘리면 편차가 어떻게 주는가 (노드 11대)
| 가상 노드 | 변동계수 | 최대/평균 | 1/√V |
|---|---|---|---|
| 1개 | 114.9% | 4.34배 | 100% |
| 10개 | 38.8% | 2.03배 | 31.6% |
| 50개 | 10.1% | 1.22배 | 14.1% |
| 100개 | 9.4% | 1.16배 | 10% |
| 200개 | 6.1% | 1.11배 | 7.1% |
| 400개 | 5.6% | 1.12배 | 5% |
고정 시드로 실제 링을 만들어 잰 값입니다. 어림값 1/√V와 자릿수가 맞는지 나란히 두었으며, 가상 노드를 네 배로 늘려야 편차가 절반이 됩니다.
사용 방법
- 1지금 노드 수와 바꾼 뒤 노드 수를 넣습니다.
- 2전체 키 개수를 넣으면 실제로 움직이는 키가 몇 개인지 나옵니다.
- 3가상 노드 수를 바꿔 가며 부하가 얼마나 고르게 나뉘는지 확인합니다.
자주 묻는 질문
거의 전부 옮겨 갑니다. 자리를 지키는 비율은 min(n,m)×gcd(n,m)/(n×m)이라, 10대에서 11대로 늘리면 9.1%만 남고 90.9%가 움직입니다. 4대에서 5대로 늘려도 80%가 움직입니다. 두 배로 늘리는 경우에만 예외적으로 절반이 남는데, 이것을 모듈러의 일반적인 성질로 착각하기 쉽습니다.
옮기는 비율이 |n−m|/max(n,m)로 줄어듭니다. 10대에서 11대로 늘릴 때 9.1%만 움직이며, 이는 모듈러의 90.9%에 비하면 정확히 10분의 1입니다. n대에서 n+1대로 갈 때 모듈러가 링보다 정확히 n배 더 옮긴다는 관계가 성립합니다. 노드가 많을수록 차이가 커집니다.
노드와 키를 같은 원 위에 올리고, 각 키를 시계 방향으로 가장 가까운 노드에 맡깁니다. 노드가 하나 늘면 그 노드가 새로 맡게 되는 구간의 키만 움직이고 나머지는 그대로 있습니다. 노드가 빠질 때도 그 노드가 맡던 구간만 다음 노드로 넘어갑니다.
원 위에 점을 무작위로 뿌리면 간격이 고르지 않기 때문입니다. 노드가 10대일 때 어떤 노드는 20%를 맡고 어떤 노드는 3%만 맡는 일이 실제로 생깁니다. 노드 하나를 여러 점으로 쪼개 뿌리면 큰 수의 법칙이 작동해 편차가 줄어듭니다.
부하 편차가 대략 1/√V로 줄어들므로 목표에서 거꾸로 정합니다. 100개면 변동계수가 10%, 400개면 5%입니다. 네 배로 늘려야 편차가 절반이 되므로 무작정 키운다고 좋아지지 않고, 링에 올릴 점이 그만큼 늘어 메모리와 조회 비용이 커집니다. 실무에서는 100~200개를 쓰는 경우가 많습니다.
다를 수 있습니다. 여기서 세는 것은 키의 비율이지 바이트 수가 아니라서, 키마다 크기가 다르면 실제로 옮기는 양이 달라집니다. 또 실제 시스템은 복제본을 여러 벌 두므로 한 노드가 빠질 때 움직이는 데이터가 이 계산보다 많을 수 있습니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서만 이루어지고, 넣으신 값은 이 기기를 벗어나지 않습니다.
알아두면 좋은 점
- 키가 고르게 퍼져 있다고 보고 계산합니다. 실제 해시 함수의 치우침은 반영하지 않습니다.
- 키의 비율을 세는 것이라 키마다 크기가 다르면 실제 이동량과 다릅니다.
- 복제본을 여러 벌 두는 시스템에서는 실제로 움직이는 데이터가 이보다 많을 수 있습니다.
- 부하 편차는 고정 시드 난수로 실제 링을 만들어 잰 값입니다. 해시 함수가 다르면 세부 숫자가 달라집니다.
함께 보면 좋은 도구
마지막 검증: 2026년 8월 31일 · 결과는 참고용 추정치입니다.