네플릭스, 카산드라 파티션 분할로 읽기 지연 초→밀리초 단축
네플릭스 엔지니어링 팀은 시계열 데이터(TimeSeries) 처리 시 발생하는 아파치 카산드라(Apache Cassandra)의 거대 파티션(Wide Partition) 문제를 해결하는 기술을 공유했습니다. 읽기 경로에서 대용량 파티션을 동적으로 감지해 분할하는 방식을 도입하여, 평균 읽기 지연 시간을 수 초에서 10밀리초 수준으로 획기적으로 단축했습니다. 이를 통해 500MB 이상의 거대한 데이터 파티션도 빠르고 안정적으로 조회할 수 있게 되어 대규모 데이터 인프라 운영에 중요한 해결책을 제시합니다.
네플릭스 엔지니어들은 TimeSeries Abstraction(시계열 추상화)을 위해 아파치 카산드라(Apache Cassandra)에서 거대 파티션(wide partition)을 처리하는 방법을 상세히 설명했습니다. 두 가지 접근 방식이 상호 작용합니다. 첫째, Time Slice 재파티셔닝(re-partitioning)은 테이블 수준에서 향후 생성될 파티션을 최적화하고, 둘째, 동적 파티셔닝(dynamic partitioning)은 읽기 경로(read path)에서 TimeSeries ID별로 비정상적으로 커진 파티션을 감지하여 분할합니다.
이 과정에서 데이터 크기 바이트 계수 및 카프카(Kafka)를 통해 대용량 파티션을 감지하며, 분할 시 체크섬(checksum) 검증을 거쳐 무결성을 확보합니다. 또한 블룸 필터(Bloom filter)를 사용해 읽기 요청을 병렬 자식 파티션들로 효율적으로 라우팅합니다. 그 결과 평균 읽기 지연 시간이 수 초에서 10밀리초대로 크게 감소했으며, 500MB 이상의 거대 파티션도 문제없이 정상 조회되는 성과를 거두었습니다.
“네플릭스 AI 팀, ID별 카산드라 파티션 분할을 통해 거대 파티션 읽기 지연 시간을 초 단위에서 밀리초로 단축(MarkTechPost)”