AI Briefing

카카오, 자체 개발 분산 웹 캐시 'Wcache'의 아키텍처 진화

·2017.10.23 00:00

핵심 내용

카카오가 자체 개발한 Wcache가 SSD-HDD 이중 계층 구조로 수십만 TPS와 95% 이상의 캐시 히트율을 달성했다.

1 / 4

자세히 보기

카카오는 상용 웹 캐시 솔루션의 높은 라이선스 비용과 제한적인 기능 개선 문제를 해결하기 위해 C 언어 기반의 자체 웹 캐시 Wcache를 개발했다. Wcache는 범용 하드웨어(x86)에서 멀티스레딩, I/O 멀티플렉싱, DMA 등을 활용해 안정적인 성능을 제공한다.

독자적인 저장 구조

웹 캐시 성능은 저장 장치 I/O 속도에 좌우되므로, Wcache는 파일 시스템의 한계를 극복하기 위해 독자적인 저장 방식을 채택했다. 디스크에는 64MB~10GB 크기의 BigFile을 미리 생성해 순차 쓰기를 유도하고, 메모리에 적재 후 블록 단위로만 디스크에 기록해 I/O 횟수를 줄였다. 메타데이터는 SQLite DB에 저장하며, HTTP 헤더와 일부 메타데이터는 메모리의 LRU 해시 테이블에 캐싱해 접근 속도를 높였다.

분산 구성의 진화

초기 Wcache는 로드 밸런서 아래 노드를 병렬로 배치했으나, 라운드 로빈 방식으로 인해 캐시 중복이 발생해 히트율이 낮았다. 이를 개선하기 위해 **일관된 해싱(consistent hashing)**을 적용한 클러스터 구조를 도입해 캐시 효율을 높였으나, 특정 인기 콘텐츠(hot item)에 트래픽이 집중되는 문제가 발생했다.

이중 계층(Dual Layer) 아키텍처

트래픽 쏠림 문제를 해결하기 위해 Wcache는 이중 계층 구조로 진화했다. 1차 계층은 빠른 응답을 위해 SSD를 탑재한 장비로 구성하고, 2차 계층은 대용량 저장을 위해 HDD를 탑재한 장비로 구성했다. 1차 계층에서 캐시 미스가 발생하면 2차 계층의 적절한 노드로 요청을 라우팅하는 방식이다. 이 구조는 롱테일 분포를 보이는 서비스에서 높은 캐시 효율과 성능을 보여주며, 현재 카카오 서비스에서 수십만 TPS의 트래픽을 95% 이상의 히트율로 안정적으로 처리하고 있다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.