토픽 62 / 66·분산/저장소 자료구조
Consistent Hashing (일관된 해싱)
Consistent Hashing (일관된 해싱)
노드 추가/제거 시 최소한의 키만 재배치되도록 해시 값을 원형 공간(해시 링)에 매핑하는 분산 해싱 기법으로, 분산 캐시와 데이터베이스에서 핵심적으로 사용
목적: 노드 변경 시 최소 재배치, 부하 분산, 확장성, 분산 시스템
특징: 해시 링, 가상 노드(Virtual Node), 시계 방향 검색, 최소 재배치
해시 링(Hash Ring): 0~2^32-1(또는 2^64-1) 범위를 원형으로 표현
동작
- •노드 배치: 각 노드를 해시하여 링에 배치
- •키 배치: 키를 해시하여 시계 방향 첫 번째 노드에 할당
- •노드 추가: 새 노드와 이전 노드 사이의 키만 이동
- •노드 제거: 제거된 노드의 키만 다음 노드로 이동
가상 노드(Virtual Node)
- •각 물리 노드를 여러 가상 노드로 표현(예: 150개)
- •부하 균등화, 이질적 노드 처리, 핫스팟 방지
복제(Replication): 시계 방향 N개 노드에 복제, 가용성 향상
장점: 최소 재배치(1/N), 확장성, 부하 분산, 유연성
단점: 가상 노드 관리 복잡, 해시 함수 의존, 링 메타데이터
적용사례: Amazon Dynamo, Cassandra, Memcached, Redis Cluster, CDN
비교: Consistent Hashing(최소재배치) vs Modular Hashing(전체재배치) vs Rendezvous Hashing(대안)
연관: 분산 시스템, 해시 링, 가상 노드, Dynamo, 샤딩