← 질문 목록
#55깊이 0

노드를 늘릴 때 일관된 해싱이 필요한 이유는?

아키텍처 · 분산시스템심화확장성

나머지 연산으로 나누면 노드가 하나 늘 때 거의 모든 키가 옮겨 가기 때문이다. 캐시라면 그 순간 적중률이 0에 가까워진다.

기준나머지 연산일관된 해싱
노드 추가 시 이동거의 전부1/n
구현간단하다링과 가상 노드가 필요
분포고르다가상 노드로 보정한다

노드가 늘거나 줄어도 키 일부만 옮긴다. 고전적인 구현은 키와 노드를 같은 링 위에 올린다. 키는 시계 방향으로 처음 만나는 노드가 맡는다. 노드가 빠지면 그 구간만 다음 노드로 넘어간다.

노드 수가 적으면 구간 크기가 들쭉날쭉해진다. 그래서 노드 하나를 링 위 여러 지점에 올리는 가상 노드를 쓴다.

일관된 해싱은 분산 캐시샤딩, 세션 고정에 쓰인다. 분산 캐시와 샤딩이 대표적이고, 로드 밸런서의 세션 고정에도 같은 원리가 들어간다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

노드를 늘릴 때 일관된 해싱이 필요한 이유는?