해시 키 재배치 문제

serverIndex = hash(key) % N (N은 서버의 개수이다)

이 방법은 서버 풀이 고정되어 있으며 데이터 분포가 균등할 때는 잘 동작한다. 하지만 서버 풀이 줄어들거나 늘어나면 캐시가 보관되어 있지 않은 엉뚱한 서버를 바라볼 수 있다.

안정 해시

안정해시는 해시 테이블 크기가 조정될 때 평균적으로 오직 k/n개의 키만 재배치하는 해시 기술이다. (k는 키의 개수이고, n은 슬롯의 개수)

해시 공간과 해시 링

SHA-1의 해시 공간 범위는 0부터 2^160 -1 까지

해시 서버

Untitled

해시 키

Untitled

서버 조회

어떤 키가 저장되는 서버는, 해당 키의 위치로부터 시계방향으로 링을 탐색해나가면서 만나는 첫 번째 서버다. 따라서 key0은 서버 0에 저장되고, key1은 서버 1에 저장되며, key2는 서버 2, key3은 서버 3에 저장된다.

Untitled

서버 추가

서버를 추가하더라도 서버 반시계방향 첫 번째 키값이 추가된 서버로 재배치 된다.

Untitled

서버 제거

서버가 제거되면 키 가운데 일부만 재배치 된다.

Untitled