안정 해시 설계
안정 해시 설계
수평적 규모 확장을 위해서는 요청 또는 데이터를 서버로 균등하게 나누는 것이 중요 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술
안정 해시 설계의 이점
- 서버가 추가되거나 삭제될 때 재배치되는 키의 수가 최소화된다.
- 데이터가 보다 균등하게 분포하게 되므로 수평적 규모 확장성을 달성하기 쉽다.
- 핫스팟(hotspot) 키 문제를 줄인다.
만약 잘 분배가 되어있던 서버 하나가 죽었을 경우?
기존 해시 테이블
- 모든 키를 재배치함
안정 해시
- 이상이 있는 부분만 재배치
기본 구현법
- 서버와 키를 균등 분포 해시 함수를 사용해 해시 링에 배치한다.
- 키의 위치에서 링을 시계 방향을 탐색하다 만나는 최초의 서버가 키가 저장될 서버다.
문제점
- 서버가 추가되거나 삭제될 때 파티션의 크기를 균등하게 유지하는게 불가능
- 키의 균등 분포를 달성하기가 어려움
가상 노드
기본 구현법의 문제를 해결하기 위한 방법 실제 노드를 가르키는 가상 노드를 만들어 해시 링에 균등하게 배치하는 방법
This post is licensed under CC BY 4.0 by the author.