
650TB 대규모 데이터를 실시간으로 요리하는 넷플릭스의 독자적인 그래프 추상화 레이어(Graph Abstraction)를 공개합니다.
이 아키텍처는 대규모 분산 환경에서 복잡한 관계 데이터를 어떻게 저지연으로 처리할 수 있는지에 대한 모범 답안을 제시합니다. 단순한 그래프 데이터베이스 도입을 넘어, 기존 인프라를 활용해 성능과 유연성을 모두 잡은 넷플릭스 엔지니어링의 정수를 담고 있습니다. 분산 시스템에서 일관성과 성능 사이의 줄타기를 어떻게 해결했는지 상세히 다룹니다.
대규모 트래픽을 처리해야 하는 백엔드 아키텍트나, 분산 환경에서 그래프 데이터를 효율적으로 관리하고 싶은 엔지니어에게 강력히 추천합니다.
넷플릭스는 실시간 스트리밍 및 사용자 경험을 지원하기 위해 초당 수백만 건의 연산을 밀리초 단위로 처리할 수 있는 OLTP 중심의 그래프 아키텍처가 필요했습니다. 기존의 일반적인 그래프 엔진은 높은 처리량과 낮은 지연 시간을 동시에 만족시키기에 한계가 있었습니다.
넷플릭스는 기존의 Key-Value 및 TimeSeries 추상화 계층 위에 '그래프 추상화' 레이어를 구축하여 노드와 에지를 효율적으로 인덱싱하고, 속성 그래프 모델과 강력한 타입의 스키마를 도입했습니다. 에지의 링크와 속성 인덱스를 분리하고 Kafka를 활용한 비동기 엔트로피 복구 메커니즘을 적용했습니다.
이 아키텍처를 통해 현재 650TB 이상의 그래프 데이터셋에서 초당 약 1,000만 건의 연산을 낮은 지연 시간과 높은 비용 효율성으로 처리하고 있습니다. 실시간 서비스 토폴로지 분석 및 소셜 그래프 등 핵심 비즈니스 사례에 성공적으로 적용되었습니다.
Trade-off
성능을 위해 다중 네임스페이스 간의 원자적 쓰기를 포기했으며, 이로 인해 결과적 일관성을 수용하고 엔트로피 복구와 같은 추가적인 일관성 유지 메커니즘이 필요하게 되었습니다.
노드와 에지에 각각 속성을 부여할 수 있는 유연한 그래프 데이터 모델입니다.
넷플릭스의 분산 키-값 저장소 추상화 계층으로, 그래프의 실시간 인덱스 역할을 합니다.
분산된 여러 인덱스 간의 데이터 불일치를 수정하는 자동 복구 메커니즘입니다.




