페이스북, 오픈소스DB ‘록스DB’ 공개

가 +
가 -

시간당 12억명이 넘는 사용자가 페이스북을 찾는다. 이들이 올리는 게시글과 사진의 데이터양은 수 테라바이트(TB)급. 단 한번의 클릭으로 원활한 서비스를 제공하려면 페이스북 운영자를 머리에 쥐가 날 테다.

어떻게 하면 장애 없이 페이스북을 운영할 수 있을까. 페이스북은 오픈소스로 문제 극복에 나섰다.

페이스북은 11월22일 블로그에 오픈소스 데이터베이스 ‘록스DB’를 소개했다. 락DB는 서버 PCI 슬롯에 장착되는 플래시카드 성능을 극대화한 키값 스토리지 라이브러리다. 플래시 스토리지에 빠른 읽기와 쓰기 능력을 활용한 오픈소스 데이터베이스란 얘기다.

페이스북 다루바 보타쿠을 데이터베이스 엔지니어는 “구글이 2년전 공개한 레벨DB에 기반해 록스DB를 개발하게 됐다”라며 “수많은 코어를 활용해 플래시카드의 초당 입출력(IOPS) 속도를 최대한 이끌어 빠르게 데이터를 처리할 수 있다”라고 설명했다.

facebood rockdb

전통적인 DB 구조에선 아무리 많은 CPU와 빠른 플래시 스토리지를 사용하더라도 IOPS 속도를 높이는 데 한계가 있다. 보통 애플리케이션을 실행할 때 네트워크를 타고 서버와 스토리지, 데이터베이스를 오가며 정보를 주고받는다. 이 과정에서 한꺼번에 많은 작업 요청이 몰릴 경우 서버와 데이터베이스는 네트워크를 타고 들어오는 작업대로 순서를 정해 처리한다. 애플리케이션 실행 속도가 느려진다. 너무 많은 문서 파일을 한꺼번에 실행시킬 때 발생하는 버퍼링을 떠올리면 된다.

록스DB를 이용하면 애플리케이션을 실행할 때 필요한 컴퓨팅 자원을 서버에서 바로 불러와 처리할 수 있다. 서버 PCI 슬롯에 장착하는 플래시카드를 저장매체로 활용한 덕이다.

록스DB는 서버에서 바로 원하는 데이터를 찾아 처리하기 때문에 네트워크 영향을 덜 받는다. 각 서버와 스토리지, 데이터베이스 간 정보를 교류하다가 발생하는 병목현상도 어느정도 해소할 수 있다.

보타쿠르는 “비슷한 기능을 제공하는 퓨전IO 파워서버나 구글 레벨DB보다 더 빠르게 데이터를 처리하는 것으로 나타났다”라며 “많은 개발자들이 록스DB를 사용할 것으로 기대한다”라고 말했다.

페이스북은 실시간으로 데이터를 파악해야 하는 그래프서치 쿼리, 빠른 접속 속도를 요구하는 스팸 탐지 애플리케이션, 실시간으로 하둡 데이터 쿼리를 보내는 앱, 대량의 데이터를 쓰고 지우는 애플리케이션에서 록스DB를 효과적으로 이용할 수 있을 것으로 기대했다.

네티즌의견(총 0개)