
데이터 급증과 파티션 쏠림 현상을 해결하기 위한 넷플릭스 엔지니어링 팀의 동적 파티셔닝 전략 대공개
수 페타바이트의 데이터를 처리하는 넷플릭스 시계열 서비스에서 카산드라의 고질적인 문제인 와이드 파티션을 기술적으로 해결한 사례입니다. 인프라 증설 대신 워크로드 변화를 실시간으로 감지하고 파티션을 유연하게 쪼개는 스마트한 아키텍처 구축 과정을 상세히 설명합니다.
카산드라를 사용하면서 데이터 스큐(Skew)나 성능 저하를 겪고 있는 백엔드 개발자 및 데이터 엔지니어에게 추천합니다. 대규모 분산 환경에서 가용성을 유지하며 스토리지 구조를 최적화하는 실무적인 패턴을 배울 수 있습니다.
넷플릭스의 시계열 데이터 서비스에서 특정 ID에 데이터가 과도하게 쏠리는 '와이드 파티션' 현상이 발생하여, 읽기 지연 시간이 초 단위로 급증하고 시스템 불안정을 초래하는 문제가 발생했습니다.
기존의 정적 프로비저닝 한계를 극복하기 위해 테이블 수준의 재파티셔닝과, 읽기 경로에서 와이드 파티션을 감지하여 비동기적으로 데이터를 분할하고 블룸 필터로 쿼리를 리다이렉션하는 ID 단위 동적 분할 시스템을 도입했습니다.
와이드 파티션의 읽기 지연 시간이 초 단위에서 수십 밀리초(ms) 수준으로 대폭 감소했으며, 스레드 큐잉과 타임아웃이 해결되어 전반적인 클러스터 안정성이 향상되었습니다.
Trade-off
안전한 폴백을 위해 원본 데이터를 삭제하지 않으므로 추가적인 저장 공간이 필요하며, 비동기 파이프라인과 메타데이터 캐시 관리로 인해 전체적인 아키텍처 복잡성이 증가했습니다.
카산드라에서 단일 파티션 키 아래에 너무 많은 데이터가 쌓여 읽기/쓰기 성능이 저하되는 현상입니다.
특정 원소가 집합에 포함되어 있는지 확인하는 데 사용되는 공간 효율적인 확률적 자료구조입니다.
난수를 이용해 함수의 값을 확률적으로 계산하거나 시스템의 거동을 예측하는 방법입니다.




