클라우드플레어(Cloudflare)가 자사 빌링 및 사기 탐지 시스템을 뒷받침하는 데이터 파이프라인에서 발생한 성능 저하 문제를 진단하고, 오픈소스 분석형 데이터베이스 클릭하우스(ClickHouse)의 쿼리 계획(Query Planning) 단계에서 병목이 발생하고 있음을 규명했다. 클라우드플레어는 수백 페타바이트(PiB) 규모의 데이터를 처리하며 초당 수백만 건의 행을 수집하는 대규모 분석 환경을 운영 중이다. 해당 시스템은 수백 개의 애플리케이션이 공유하는 중앙 집중형 구조로, 2024년 12월 기준 데이터 규모가 이미 2PiB를 넘어섰다.
문제는 데이터 파티션 구조를 변경하는 마이그레이션 이후 발생했다. 클라우드플레어는 고객별 데이터 보존 정책을 분리 관리하기 위해 파티셔닝 방식을 테넌트(고객 네임스페이스) 단위로 변경했는데, 이후 일일 집계 작업의 쿼리 속도가 눈에 띄게 느려졌다. I/O, 메모리, 스캔 행 수 등 표면적인 성능 지표는 정상이었기 때문에 원인 파악이 쉽지 않았다. 클라우드플레어 시니어 분산 시스템 엔지니어 제임스 모리슨(James Morrison)과 크리스티안 앤드레스(Christian Endres)가 프로파일링을 통해 원인을 추적한 결과, 샘플링된 CPU 시간의 45%가 단일 함수(filterPartsByPartition)에 집중돼 있었으며, 쿼리 실행 시간의 절반 이상이 테이블 파츠(parts) 목록을 보호하는 단일 뮤텍스(MergeTreeData) 획득을 기다리는 데 소비되고 있었다.

클라우드플레어 팀은 세 가지 방식으로 문제를 해결했다. 첫째, 배타적 락(exclusive lock)을 공유 락(shared lock)으로 교체해 동시 접근을 허용했다. 둘째, 쿼리마다 전체 파츠 목록을 복사하던 방식을 제거했다. 셋째, 쿼리 실행 시 매번 전체 목록을 순회하던 파츠 필터링 로직을 개선했다. 이 패치를 2026년 3월 배포한 결과 쿼리 응답 시간이 50% 감소했으며, 파츠 수가 증가해도 지연이 비례해 늘어나는 문제도 해소됐다. 클라우드플레어는 해당 수정 사항을 ClickHouse 오픈소스 프로젝트에 기여했으며, 버전 25.11부터 공식 반영됐다.
이번 사례는 대규모 AI 및 빅데이터 인프라에서 자주 간과되는 교훈을 다시 부각시켰다. 고수준 모니터링 지표만으로는 대규모 분산 시스템의 동시성 문제를 진단하기 어려우며, 낮은 수준의 실행 가시성(low-level execution visibility)이 여전히 중요하다는 점이다. 다만 파티셔닝 구조 변경으로 증가한 파츠 수가 클러스터 조율을 담당하는 주키퍼(ZooKeeper)에도 부담을 주고 있어, 현재 아키텍처의 장기적 지속 가능성에 대한 물음은 여전히 남아 있다.














