목록 보기
급증하는 트래픽 안정적으로 처리하기: 개선편(2) 논리적 파티셔닝
백엔드

급증하는 트래픽 안정적으로 처리하기: 개선편(2) 논리적 파티셔닝

채널톡
채널톡
2026년 2월 25일

두줄요약

단일 Queue의 HOL Blocking과 인스턴스 단위 스케일링 비효율을 논리적 파티셔닝으로 개선했습니다. Partition별 독립 스케일링으로 10만 건 처리 시간을 25분에서 4분으로 줄였습니다.

문제 상황

  • 단일 Ready Queue 구조에서 대규모 TaskGroup이 큐를 점유하며 다른 요청을 지연시키는 HOL Blocking 발생
  • 인스턴스 단위 스케일링으로 필요한 Worker 수보다 과도한 Worker가 한꺼번에 늘어나는 비효율

원인 분석

  • 하나의 Redis Sorted Set을 여러 TaskGroup이 공유하는 구조
  • 작업량이 큰 요청이 큐 전체 처리 흐름을 압박하는 설계

해결 방법

  • 같은 Redis 안에서 keyspace를 partition별 prefix로 나누는 논리적 파티셔닝 적용
  • taskGroupID 해시 기반 라우팅과 Partition별 독립 Consumer/Worker 구성
  • Coordinator가 Partition별 부하를 관찰해 Worker 수를 독립적으로 조절

성능/운영 포인트

  • 10만 건 처리 시간을 25분에서 4분으로 단축
  • Partition 간 격리로 HOL Blocking 완화
  • Worker 수 checkpoint 저장과 재시작 복구로 운영 안정성 확보

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...