AI Briefing

카카오, 대용량 분산 그래프DB 'S2Graph' 오픈소스 공개

·2016.01.29 00:00

핵심 내용

2억 사용자, 100억 관계 데이터를 실시간 너비 우선 탐색으로 처리하는 기술이다.

1 / 10

자세히 보기

카카오가 카카오톡, 다음 등 20여 개 서비스에 적용된 대용량 분산 그래프 데이터베이스 S2Graph를 오픈소스로 공개했다. 이 시스템은 Scala와 Play Framework로 작성된 그래프 API 서버와 HBase, Kafka, Spark 등 최신 기술 스택으로 구성되어 있다.

기술적 도전과 해결

카카오는 기존 수동 샤딩된 MySQL 환경에서 데이터 규모 증가로 인한 물리적 한계에 직면했다. S2Graph는 2억 명의 사용자와 100억 건의 관계를 관리하며, 매일 5000만 건의 관계 변경과 30억 건의 활동 추가를 처리한다. 특히 피크 타임에 초당 65,000 쿼리를 처리하고 최대 응답 시간을 50ms 이내로 유지하는 실시간 너비 우선 탐색(BFS) 성능을 목표로 설계되었다.

기존 그래프DB들이 정적 데이터나 깊이 우선 탐색(DFS)에 최적화된 것과 달리, S2Graph는 빈번한 데이터 변경과 부분 데이터 기반의 BFS에 강점을 가진다. 또한 바이럴 효과를 위한 실시간 업데이트와 동적 랭킹 로직을 지원하기 위해 푸시와 풀 방식을 모두 고려한 아키텍처를 채택했다.

아키텍처 및 확장성

S2Graph는 Storage-as-a-Service 개념으로, HBase를 그래프 데이터 저장소로 활용하여 성능과 확장성을 확보했다. 저장소 레이어는 물리적 구현체와 독립적으로 설계되어 MySQL 등 다른 DB를 사용할 수도 있다. 적용 전 복잡한 수동 샤딩 아키텍처는 S2Graph 도입 후 깔끔하고 무한 확장 가능한 구조로 개선되었으며, 코어 개선을 통해 QPS는 20,000에서 65,000으로, 응답 시간은 100ms에서 50ms 이하로 향상되었다.

오픈소스 프로젝트 현황

S2Graph는 지난해 11월 아파치 재단 인큐베이터 프로젝트로 선정되어 Apache S2Graph로 명칭이 변경되었다. 현재 소스 코드 이전 및 문서화 작업이 진행 중이며, Vagrant와 VirtualBox를 통해 단일 머신에서도 쉽게 설치 및 테스트할 수 있다.

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

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