The Evolution of Cassandra Data Movement at Netflix

Author: Guil Pires, Jennifer Prince, Jose Camacho, Ken Kurzweil, Phanindra Chunduru | Source: Netflix Tech Blog | Published: 2026-05-19


한 줄 요약

Netflix가 모놀리식 Casspactor(Cassandra→Iceberg 커넥터)를 S3 백업에서 직접 읽어 Spark DataFrame을 생성하는 계층형 “Connector Factory” 아키텍처로 교체하고, Validation·Visibility·Safety 3대 기둥과 Decider 패턴으로 무중단 마이그레이션을 수행.

핵심 주장/내용

  • 기존 Casspactor의 한계: ① 여러 시스템에서 백업 메타데이터를 조합 → 실제와 괴리(stale/incorrect 데이터 silent read) ② 모든 추상화(Key Value, Time Series 등)가 Casspactor의 제약 상속 — skewed partition OOM, 데이터 모델 무지, 중간 테이블 bloat, time travel 불가, 모놀리식
  • 핵심 통찰: “어떤 백업이 존재하고 완전한가?”의 답은 이미 S3 백업 스토리지에 있음 → 의존성 체인을 단일 진실 공급원(S3)으로 대체
  • 새 계층형 스택: Cassandra Analytics Wrapper(S3 직접 읽기 → Spark DataFrame) 위에 Connector Factory(Java UDF/transform)로 각 추상화가 데이터 모델 인식 커넥터 구축. Executor 레벨 mutation compaction으로 skewed partition을 셔플 없이 처리, 중간 Iceberg 테이블 제거, 자동 사이징, time travel(스키마·토폴로지·데이터를 시점 단위로)
  • 마이그레이션 3대 기둥: ① Validation(shadow 모드로 C=M 행 단위 검증, investigation log) ② Visibility(대시보드·의존성·알림) ③ Safety(Maestro 워크플로 + Decider 패턴: Connector Controller가 cohort별 커넥터 결정, Move Data 실패 시 Casspactor로 폴백)
  • Like-for-Like 전략: 사용자 인터페이스·출력 계약·최종 데이터 아티팩트를 완전 동일하게 유지 → 수십 개 다운스트림 팀 조율 불필요, 마이그레이션을 플랫폼 내부 구현 디테일로 전환

주요 수치 / 사실

  • Casspactor: 일 ~1,200 data movement, ~3 PB Cassandra→Iceberg 전송
  • 비용 절감 규모: USD 수백만 단위(중간 Iceberg 테이블 제거 + Executor SSTable compaction)
  • 검증 목표: 100% 행 단위 일치(C-M=0, M-C=0)
  • 발견한 차이: TTL 참조 타임스탬프, Consistency Level, 백업 선택, 내부 비즈니스 로직

관련 위키


Source: 원문 보기