데이터 분산, 서버 추가/삭제에도 안전하게! 일관 해싱의 비밀

by DD
5개월 전
조회수 10

전통적인 해싱 방식은 서버 추가/삭제 시 모든 데이터를 재분배해야 하는 Rehashing 문제를 야기함.

일관 해싱은 해시 공간을 링 형태로 구성하여 서버의 변화에 유연하게 대처, 데이터 이동량 최소화를 보장함.

가상 노드를 활용하여 특정 서버에 과부하가 걸리는 문제를 해결, 안정적인 분산 시스템 운영을 가능하게 함.

전통 해싱의 문제점: Rehashing

전통적인 해싱 방식은 서버의 수가 변경될 때마다 모든 데이터를 재분배해야 하는 Rehashing 문제를 가지고 있다. 구체적으로, 서버의 수를 나타내는 모듈로 연산자(%)의 값이 변경되면, 기존의 모든 키에 대한 해시 값이 달라지기 때문이다. 따라서, 대규모 분산 시스템에서 서버의 확장 및 축소 시 데이터 이동으로 인한 성능 저하 및 서비스 중단 위험이 발생한다.

일관 해싱의 작동 원리: 링 구조와 가상 노드

일관 해싱은 해시 공간을 링 형태로 구성하고, 각 서버를 링 위에 배치하여 데이터의 분산을 관리한다. 반면, 키는 해시 값을 기준으로 링 위에 위치하며, 각 키는 시계 방향으로 가장 가까운 서버에 할당된다. 결과적으로, 서버가 추가/삭제되어도 소수의 키만 재할당되며, 가상 노드를 통해 특정 서버에 부하가 집중되는 문제를 해결하여 시스템 안정성을 높인다.

실제 시스템 적용 가이드: Redis Cluster와 비교

일관 해싱은 Redis Cluster와 같은 분산 캐시 시스템에서 데이터 분배 및 장애 복구에 활용된다. 구체적으로, Redis Cluster는 일관 해싱을 기반으로 하여, 노드 장애 시 데이터의 자동 재분배를 지원한다. 따라서, 개발자는 Redis Cluster를 통해 데이터 일관성을 유지하면서, 시스템의 확장성가용성을 확보할 수 있다.

Explained what problem consistent hashing solves and how it works.