카카오, 분산 웹 캐시 Wcache 구조 개편… 동일 콘텐츠 처리 성능 3배 향상
·2017.10.23 00:00
핵심 내용
Bloom Filter 적용으로 응답 속도 2~5배 개선 및 read/write lock 분리를 통해 병목 현상을 제거했다.
1 / 7
자세히 보기
카카오가 트래픽을 처리하는 분산 웹 캐시 Wcache의 저장 구조와 락(Lock) 메커니즘을 대대적으로 개편했다. 기존 버전은 메타데이터를 중앙 집중식 SQLite DB에 저장하는 방식 때문에 블록 교체 시 DB 부하가 급증하여 성능이 최대 **80%**까지 하락하는 문제가 있었다.
저장 구조 변경: JBF 도입
중앙 집중식 DB의 한계를 극복하기 위해 메타데이터를 BigFile 내부에 저장하는 Journaling BigFile(JBF) 구조를 도입했다. JBF는 블록 단위 저널, 공간 맵, B-Tree를 포함하여 개별 파일 단위의 복구와 포맷이 가능하며, 이를 통해 캐시 비우기 시 발생하는 성능 하락 이슈를 해결했다. 또한, 중복된 JBF 탐색을 줄이기 위해 Bloom Filter를 적용하여 기존 대비 응답 속도를 2~5배 개선했다.
기능 및 락 구조 개선
메타데이터 구조를 Meta와 Info 타입으로 분리하여 Vary Object의 유연한 저장을 지원하고, 콘텐츠 크기 제한을 해제했다. 또한, 동일 콘텐츠에 대한 집중 요청 시 발생하는 병목 현상을 해결하기 위해 read/write lock을 분리하고 디스크 I/O와 검증 로직을 별도 actor로 분리했다. 이 조치는 동일 콘텐츠 요청 처리 성능을 기존 대비 약 3배 향상시켰다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.