ClickHouse Cloud 쿼리 프로세싱 및 캐싱 아키텍처
ClickHouse Cloud 쿼리 프로세싱 및 캐싱 아키텍처

ClickHouse Cloud 쿼리 프로세싱 및 캐싱 아키텍처

ClickHouse 분류
ClickHouse Cloud
Type
Research
작성자

Ken

개요

ClickHouse Cloud는 현대적인 클라우드 데이터베이스의 새로운 표준을 제시합니다. 기존의 데이터베이스 아키텍처와 달리, 분리된 스토리지와 컴퓨트(Separated Storage and Compute) 구조를 채택하여 탄력성과 성능 모두를 실현했습니다. 하지만 S3 같은 원격 객체 스토리지의 높은 지연시간은 분명한 과제입니다. 이를 극복하기 위해 ClickHouse Cloud는 정교한 다층 캐싱 전략과 병렬 처리 기법을 도입했습니다. 본 문서에서는 사용자의 쿼리가 ClickHouse Cloud 시스템을 통해 처리되는 전체 과정을 상세히 분석합니다.

1. ClickHouse Cloud 아키텍처 개요

1.1 분리된 스토리지와 컴퓨트 (Separated Storage and Compute)

ClickHouse Cloud의 핵심은 스토리지 계층과 컴퓨트 계층의 완전한 분리입니다:

  • 컴퓨트 노드 (Compute Nodes): 상태가 없는(Stateless) 디스크리스 머신들로 구성
  • 데이터를 로컬 디스크에 저장하지 않음
  • 쿼리 처리 기능에만 집중
  • 필요에 따라 탄력적으로 스케일링 가능
  • 스토리지 계층 (Storage Layer): S3를 주요 데이터 저장소로 활용
  • 무제한의 확장성 제공
  • 높은 내구성 (99.999999999%)
  • 관리의 단순성
  • 분산 캐시 (Distributed Cache): 중간 계층의 핵심
  • 객체 스토리지와 컴퓨트 사이의 성능 간극 해소
  • SSD 기반 고속 접근
  • 모든 컴퓨트 노드가 공유

1.2 아키텍처의 이점

2. 다층 캐싱 전략 (Multi-Layered Caching Strategy)

ClickHouse Cloud의 성능 핵심은 정교하게 설계된 3단계 캐싱 계층입니다. 각 계층은 고유한 특성을 가지며, 데이터 접근 빈도에 따라 최적화되어 있습니다.

2.1 캐싱 계층 구조

2.2 L1 캐시: 사용자공간 페이지 캐시 (Userspace Page Cache)

특징:

  • 위치: 각 컴퓨트 노드의 메모리
  • 저장 매체: RAM
  • 접근 속도: 나노초(ns) — 가장 빠름
  • 용량: 노드의 가용 메모리 크기에 따라 결정
  • 공유 범위: 단일 노드에만 로컬 존재

작동 방식:

실제 예시:

같은 테이블에 대한 반복 쿼리:

  • Query 1:SELECT COUNT(*) FROM events WHERE date = '2025-01-15' Result:1,000,000 rows 작동:S3 → 분산캐시 → L1 캐시에 적재 (약 150ms)
  • Query 2:SELECT SUM(amount) FROM events WHERE date = '2025-01-15' (같은 필터 조건) Result:즉시 반환 작동:L1 캐시에서 직접 접근 (약 5ms) ← 30배 빠름!

2.3 L2 캐시: 분산 캐시 (Distributed Cache)

특징:

  • 위치: 전용 캐시 노드 클러스터(네트워크 기반)
  • 저장 매체: SSD(고속 플래시 메모리)
  • 접근 속도: 마이크로초(μs) ~ 밀리초(ms)
  • 용량: 전용 노드의 총 SSD 용량
  • 공유 범위: 모든 컴퓨트 노드에서 접근 가능

아키텍처:

L2 캐시의 역할:

분산 캐시는 컴퓨트의 탄력성과 성능 균형을 맞추는 핵심입니다:

  • 컴퓨트 노드 간 데이터 공유 노드 1에서 로드한 데이터를 노드 2, 3, 4...에서도 즉시 재사용 가능 S3 접근 빈도 대폭 감소
  • 컴퓨트 노드 추가/제거 시에도 데이터 유지 노드가 제거되어도 분산 캐시는 유지 새 노드 추가 시 즉시 캐시 데이터 접근 가능
  • 높은 처리량 제공 여러 컴퓨트 노드가 동시에 병렬로 데이터 접근 병목 현상 최소화

2.4 L3: 원격 객체 스토리지 (S3)

특징:

  • 위치: AWS S3(또는 호환 객체 스토리지)
  • 저장 매체: 분산 하드 드라이브/플래시 메모리
  • 접근 속도: 밀리초(ms) ~ 100ms 이상
  • 용량: 사실상 무제한
  • 비용: 매우 저렴(GB당 $0.023 정도)

역할:

3. 쿼리 프로세싱 흐름 (Query Processing Flow)

3.1 전체 프로세싱 플로우

사용자 쿼리는 다음 8단계를 거칩니다:

3.2 단계별 상세 분석

1단계: 쿼리 도착 및 라우팅 (Query Arrival and Routing)

라우팅 알고리즘의 목표:

  • 부하 분산: 모든 컴퓨트 노드에 균등한 작업 분산
  • 지연시간 최소화: 사용자와 가까운 노드 선택
  • 캐시 효율성: L1 캐시 히트율이 높은 노드 선택

2단계: 필요 데이터 블록 식별 및 캐시 상태 확인

3단계: 콜드 데이터 로딩 (Cold Data Loading)

필요한 데이터가 L1, L2 캐시에 없고 S3에만 존재한다면, 다음 과정이 시작됩니다:

다중 스레드 병렬 읽기의 성능 개선:

단일 스레드 순차 읽기:

비동기 프리페칭의 동작:

4단계: 캐싱 계층을 통한 데이터 유입

로드된 데이터는 다음 경로로 캐싱 계층을 거칩니다:

5단계: 데이터 스트리밍 및 블록 단위 처리

ClickHouse는 컬럼 지향 저장소(Column-Oriented Storage)를 사용하므로, 데이터는 컬럼별로 메모리에 적재됩니다:

6단계: 병렬 쿼리 실행

벡터화된 실행 (Vectorized Execution):

7단계: 결과 집계

8단계: 결과 반환

4. 캐시 공유의 실제 효과 (Real-World Impact of Cache Sharing)

ClickHouse Cloud의 가장 강력한 특징 중 하나는 분산 캐시 공유입니다. 이를 통해 반복 쿼리의 성능이 극적으로 개선됩니다.

4.1 시나리오: 같은 테이블에 대한 반복 쿼리

4.2 대규모 분석 쿼리에서의 효과

5. 성능 최적화 기법 (Performance Optimization Techniques)

ClickHouse Cloud는 다양한 최적화 기법을 사용하여 최고의 성능을 제공합니다.

5.1 최적화 기법 요약표

5.2 벡터화 실행의 상세 설명

6. 실제 사용 사례 (Real-World Use Cases)

6.1 시간대별 부하 변화에 따른 탄력적 대응

6.2 캐시 계층의 실제 동작 시나리오

시나리오: 일일 리포팅 시스템

시간대별 성능비교

비용 및 성능 요약

캐시 재사용 효과

7. 결론 (Conclusion)

7.1 핵심 포인트

ClickHouse Cloud의 쿼리 프로세싱 및 캐싱 아키텍처는 현대 클라우드 데이터 분석의 새로운 패러다임을 제시합니다:

7.2 마주한 기술적 과제와 해결책

7.3 앞으로의 발전 방향

7.4 최종 메시지

ClickHouse Cloud는 단순한 데이터베이스를 넘어, 클라우드의 유연성과 로컬 시스템의 성능을 결합한 혁신적 솔루션입니다.

정교한 캐싱 전략, 병렬 처리, 그리고 지능형 리소스 관리를 통해 엔터프라이즈급 분석 성능을 누구나 접근 가능한 가격으로 제공합니다.

참고자료 (References)

  • ClickHouse Cloud Official Documentation