카테노이드가 Kollus VOD 서비스를 위해 자체 개발·특허 등록한 CDN 캐시 시스템 FabriCache(패브리캐시)의 설계 원리를 소개한다. 동영상 파일을 컨텐츠 블럭 단위로 쪼개 Zone 내 여러 엣지 서버에 분산 보관하는 방식으로, 대용량 미디어의 Purge 비용과 Range request 캐시 비효율을 동시에 해결하는 아키텍처를 설명한다.
핵심 포인트- Zone 그루핑: 여러 캐시 Edge 서버를 Zone으로 묶고 컨텐츠 블럭별 Owner를 지정해 분산 저장
- 블럭 단위 분산: 2개 캐시면 파일의 50%씩 담당 — 비담당 블럭은 Zone 내 Owner Edge에서 실시간 조달
- Purge 최소화: Zone 합산 용량 = 오리진 용량이면 Purge 불필요, 대용량 Range request 캐시 효율 극대화
- 오리진 페일오버: 오리진 서버 장애 시 로컬 캐시에서 지속 서비스 가능
- 웹 서버 독립: FUSE 파일시스템 레벨 구현 → nginx/Apache 의존성 없음, 업그레이드 사이드 이펙트 없음
상세 정리- 기존 CDN 한계: 모든 요청이 오리진 집중 → 서버 부하·지연, 대용량 파일 통째 캐싱으로 Range request 효율 저하
- Zone 내 네트워크 전제: 10Gbps 이상 내부 네트워크 — Zone 내 조달 지연 무시 가능 수준
- 컨텐츠 블럭 사이즈 옵션: 128KB / 512KB / 4MB, 알고리즘에 의해 블럭별 소유자 자동 지정
- 동작 시나리오 (Edge A·B·C, 4블럭): Edge A가 1번 소유 → 2번은 B, 3번은 C, 4번은 B에서 조달 → A가 클라이언트에 전달 (조달 데이터 A에 저장 안 함)
- 카테마(Katema) 알고리즘: 서버 추가·제거 시 기존 로컬 캐시 재배치를 최소화하는 일관성 해싱 계열 알고리즘
- 멀티 오리진 지원: 요청 URI 경로 기반으로 오리진 분리 (프로그레시브 다운로드 vs HLS 각각 별도 서버)
- Range request 최적화: 기존 CDN은 큰 파일을 통째 캐싱하지만 FabriCache는 블럭 단위로 정확히 캐싱 — Range request와 자연 정렬
- 아키텍처 장점: FUSE 기반 파일시스템 모듈 구현 → 웹 서버 버전 업그레이드 영향 없음
- 유연성: 2~n개 피어 자유 그루핑, 피어별 페일오버 방식 다양하게 설정 가능
왜 읽나대용량 VOD 서비스에서 일반 CDN의 Range-request 캐시 비효율을 해결하기 위해 Zone 기반 컨텐츠 블럭 분산 캐시를 설계한, 국내 자체 개발 CDN 아키텍처 공개 사례다.