피드로 돌아가기
Dev.toInfrastructure
원문 읽기
노드 변경 시 데이터 재배치 최소화를 위한 Consistent Hashing 설계
How Consistent Hashing Works
AI 요약
Context
분산 시스템에서 전통적인 Hashing 방식은 노드 수 변경 시 대규모 데이터 재매핑이 발생하는 구조적 한계 존재. 노드 추가 및 제거 시 발생하는 과도한 Data Movement로 인한 시스템 부하와 가용성 저하 문제 해결 필요.
Technical Solution
- Hash Ring 구조 도입을 통한 Key와 Node의 가상 원형 공간 매핑
- Key의 해시 값과 가장 인접한 시계 방향 Node에 데이터를 할당하는 로직 설계
- 노드 추가 시 해당 지점 이후의 일부 데이터만 새 노드로 이동시키는 부분적 재배치 구조 구현
- 노드 제거 시 소유 데이터를 링 상의 다음 노드로 이전하여 서비스 연속성 확보
- FNV-1a 또는 MurmurHash 등 결정론적이고 충돌률이 낮은 Hash Function 채택을 통한 균등 분배 유도
- Hash Chaining 기법 적용을 통한 동일 지점 해시 충돌 제어
실천 포인트
1. 단순 Modulo 연산 기반의 Sharding 대신 노드 가변성이 높은 환경에서 Consistent Hashing 검토
2. 데이터 불균형(Hotspot) 방지를 위해 Virtual Nodes 도입 및 Hash Function 성능 벤치마크 수행
3. 노드 장애 대비를 위한 Replication 전략과 Failover 메커니즘 병행 설계