<aside>
💡 수평적 규모 확장성을 위해서는 요청, 또는 데이터를 서버에 균등하게 나누는 것이 중요하다!
</aside>
- 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술이다.
- 그 전에, 해시 기술이 풀려고 하는 문제부터 살펴보자!
해시 키 재배치(rehash) 문제
N개의 캐시 서버가 있다고 가정한다.
- 이 서버들에 부하를 균등하게 나누는 보편적인 방법은, 해시 함수를 사용하는 것이다.
serverIndex = hash(key) % N(서버의 개수)
예시

- 특정한 키가 보관된 서버를 알아내기 위해, 나머지 연산을
f(key) % 4 와 같이 적용하였다.
- 예를 들어
hash(key0) % 4 = 1 이면, 클라이언트는 캐시에 보관된 데이터를 가져오기 위해 서버 1에 접속해야 한다.
예시의 키 값이 서버에 분산되는 모습

- 서버 풀의 크기가 고정되어 있을 때, 데이터 분포가 균등할 때는 잘 동작한다.
- 하지만, 서버가 추가되거나 기존 서버가 삭제되면 문제가 생긴다!