ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION283 / 1500
분산 시스템난이도 중하5분 답변 목표 · 보강본

일관된 해싱으로 노드를 추가했는데 부하가 고르지 않습니다. 가상 노드는 무엇을 개선하고 핫키는 왜 남나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

가상 노드는 물리 노드를 여러 논리 위치에 배치해 키 범위의 편중과 이동 단위를 줄이는 방법입니다. 키 개수 분산을 개선할 수 있지만 요청 빈도나 단일 키의 비용을 자동으로 나누지는 못합니다.

동작 원리와 전제

물리 노드가 하나의 큰 구간을 맡으면 우연한 해시 간격에 따라 데이터가 몰릴 수 있습니다. 여러 작은 구간으로 나누면 평균화되기 쉽고 용량이 큰 노드에 더 많은 구간을 줄 수도 있습니다. 그러나 매우 인기 있는 한 키는 여전히 한 권위 위치에 남습니다.

선택과 실패 처리

읽기 핫키는 캐시·복제, 쓰기 통계는 의미를 바꿔 분할할 수 있지만 잔액의 원자성은 별도입니다. 노드 변경 때 데이터 복사·현재 쓰기·라우팅 세대를 관리합니다. 가상 노드 수가 많으면 메타데이터와 이동 관리 비용도 늘어납니다.

구체적인 사례와 검증

키가 균등해도 값 크기가 다르면 저장 바이트가 편중되고 처리 비용이 다르면 CPU가 편중됩니다. 가상 노드 수만 늘리기보다 어떤 비용을 균등하게 하려는지 정합니다. 노드가 추가될 때 이동 대상 범위의 snapshot과 변경 로그를 연결하고, 옛 라우팅의 지연 쓰기를 새 세대에서 거절해야 합니다. 이동 완료 전에 원본 데이터를 지우면 아직 옛 위치를 참조하는 요청이 실패할 수 있어 전환·보관 기간을 둡니다. 장애 복구와 정상 증설의 소유권 전환도 같지 않을 수 있습니다. 배치 알고리즘의 이동량 이점과 실제 서비스의 데이터 일관성을 별도로 검증하겠습니다.

키 수·바이트·요청률·상위 키·실제 노드별 CPU를 비교합니다. 증설·축소·노드 장애와 오래된 라우팅을 시험합니다. 이동량을 줄이는 배치 알고리즘과 안전한 소유권 전환 프로토콜을 구분하겠습니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: 가상 노드는 물리 노드를 여러 논리 위치에 배치해 키 범위의 편중과 이동 단위를 줄이는 방법입니다.
  • 선택 조건: 읽기 핫키는 캐시·복제, 쓰기 통계는 의미를 바꿔 분할할 수 있지만 잔액의 원자성은 별도입니다.
  • 검증 기준: 키 수·바이트·요청률·상위 키·실제 노드별 CPU를 비교합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • 가상 노드를 늘리면 단일 핫키의 쓰기 부하도 여러 노드로 나뉜다고 한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 저장 위치를 옮기는 동안 동시 쓰기와 오래된 라우팅을 어떤 권위 전환으로 통제하나요?
  • 동일 키의 원본 조회를 합쳐도 대기자·실패·분산 인스턴스의 남은 호출은 어떻게 제한하나요?
  • 옛 작업자가 소유권 만료 뒤 깨어나면 실제 저장 지점에서 어떤 세대로 쓰기를 거절하나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기