user_id만 알면 중앙 조회 없이 대상 샤드를 계산할 수
있어 요청 경로가 단순하다.
101첫 번째 요청
hash(user_id) % 4
같은 user_id는 언제나 같은 샤드로 돌아오므로 단건
읽기·쓰기는 빠르게 라우팅된다. 대신 키의 숫자 순서는
사라져서, 인접한 값도 서로 다른 샤드로 흩어진다.
101첫 번째 요청
102바로 다음 키
103연속된 키
104연속된 키
연속된 ID가 1 → 3 → 0 → 2처럼 흩어지면, 해시가 고르게 나오는 한 저장과 쓰기 부하는 퍼뜨리기 쉽다. 반대로 범위 조회는 여러 샤드로 팬아웃되기 쉽다.
user_id만 알면 중앙 조회 없이 대상 샤드를 계산할 수
있어 요청 경로가 단순하다.
시간순 번호나 지역 코드처럼 순서가 있는 값도 해시 후에는 넓게 퍼져 특정 샤드 집중을 완화한다.
100~110 같은 범위 조회는 여러 샤드를 함께 읽기 쉽고,
% 4를 % 5로 바꾸면 많은 키가 다른 샤드로
다시 계산되어 재배치 비용이 커진다.