← 질문 목록
#34깊이 0

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

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

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

나머지 연산의 분모를 바꾸면 키 대부분의 나머지가 달라진다. 일관된 해싱은 노드 집합이 바뀔 때 옮겨야 하는 키를 새 노드가 맡을 분량으로 줄인다.

기준hash(key) % nodeCount일관된 해싱
노드 하나 추가대부분의 키가 재배치균등하다면 새 전체 노드 수의 역수 안팎
기본 구현배열과 나머지 연산링 또는 Jump Hash 같은 알고리즘
운영 비용재배치 범위가 크다분포 보정과 재배치 관리가 필요

고전적인 링 구현은 키와 노드를 같은 해시 공간에 올린다. 각 키는 링을 돌아 처음 만나는 노드가 맡는다. 노드가 추가되면 앞의 노드가 맡던 구간 일부만 새 노드로 옮겨 간다.

키 이동이 적다고 부하가 자동으로 고르지는 않다. 링의 노드 지점이 적으면 구간 크기가 들쭉날쭉하다. 가상 노드를 여러 개 두거나 용량에 따라 가중치를 줘 분포를 보정한다.

이 방식은 노드 증감이 잦은 분산 캐시와 저장소, 로드 밸런서에 잘 맞는다. 다만 복제본 배치, 핫 키, 재배치 중 읽기·쓰기는 해싱 알고리즘 밖에서 따로 설계한다.

추천 꼬리질문

0/300

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

관련 질문

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