BlobShuffle: Kafka Streams를 예시로 한 객체 스토리지 기반 스트림 처리 시스템의 비용 효율적인 재분할
요약
BlobShuffle은 클라우드 객체 스토리지를 활용하여 스트림 처리 시스템의 셔플링 비용을 획기적으로 절감하는 새로운 접근 방식을 제안합니다. Kafka Streams의 애드온 형태로 구현되어 기존 인프라 수정 없이도 높은 비용 효율성과 성능을 제공합니다.
핵심 포인트
- 객체 스토리지를 중간 계층으로 활용해 셔플링 비용 40배 절감
- 배치 처리 및 분산 캐싱을 통해 비용과 지연 시간 간의 균형 최적화
- Kafka Streams 애드온 방식으로 기존 애플리케이션 수정 최소화
- 95 백분위수 지연 시간 2초 미만 및 초당 2 GiB 이상의 처리량 달성
데이터 스트림을 셔플링 (Shuffling) 하거나 재분할 (Repartitioning) 하는 것은 대규모 분산 환경에서 상태 저장 워크로드 (Stateful workloads)를 지원하기 위한 최첨단 스트림 처리 프레임워크의 필수적인 작업입니다. 그러나 오늘날의 클라우드 배포 환경에서는 여러 가용 영역 (Availability Zones, AZs) 간의 상당한 네트워크 트래픽뿐만 아니라, 대규모에서 고처리량 및 강력한 일관성 (Strongly consistent)을 가진 메시징 백본을 운영할 때 발생하는 운영 부담으로 인해 셔플링이 주요 비용 발생 원인이 될 수 있습니다. 본 논문에서는 클라우드 객체 스토리지 (Object storage)를 중간 교환 계층으로 활용하여 스트림 처리 시스템의 비용 효율적인 셔플링을 구현하는 새로운 접근 방식인 BlobShuffle을 제시합니다. BlobShuffle은 모든 셔플된 레코드를 직접 전송하는 대신, 레코드를 배치 (Batch) 단위로 그룹화하여 이러한 배치를 클라우드 객체 스토리지에 저장하고 압축된 알림 (Notifications)만을 전달합니다. 다운스트림 연산자 (Downstream operators)는 이 알림을 사용하여 관련 배치를 검색하고 해당 레코드를 추출합니다. BlobShuffle은 구성 가능한 배치 처리 (Batching) 및 분산 캐싱 (Distributed caching) 메커니즘을 통해 비용 효율성과 지연 시간 (Latency) 사이의 균형을 맞춥니다. BlobShuffle은 Kafka Streams의 애드온 (Add-on)으로 구현되어 기존 애플리케이션에 최소한의 코드 변경만을 요구하며, Kafka 및 기반 인프라를 수정하지 않고도 Kafka Streams의 일관성 및 정확성 보장을 유지합니다. Kubernetes 기반의 AWS 배포 환경에서 수행한 대규모 실험적 평가를 통해, BlobShuffle은 95 백분위수 (95th percentile) 셔플 지연 시간을 2초 미만으로 유지하면서도 기존 Kafka Streams 셔플링에 비해 셔플링 비용을 40배 이상 절감할 수 있음을 보여줍니다. 또한, 실험 결과 확장성 한계에 부딪히지 않고 초당 2 GiB 이상의 처리가 가능함을 확인하였으며, 이는 BlobShuffle이 대규모의 셔플 집약적 워크로드를 경제적으로 지원할 수 있음을 나타냅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기