본문 바로가기

테크 이야기

이베이(ebay)의 몽고디비(Mongodb) 활용사례

이베이에서 몽고디비를 활용하고 있는 사례를 분석해보고자 한다. NOSQL에 대한 이해가 없었다면 아마 이번 글을 통해서 쉽게 개념을 잡아 갈 수 있을 거라고 생각한다. 

그들은 이전에 DB에 테이블에만 의존하던 검색을 메모리 캐쉬(디비)를 이용해서 속도를 향상시킬 수 있었는데 이 사례가 옥션바이트 블로그에 자세히 소개되어있다. 그들은 클라우드 관리와 메타데이터 저장공간 그리고 사용자들이 검색어를 입력했을 때 그와 관련된 연관 검색어들을 보여주고 있다. 이런 작업들을 몽고DB같은 nosql을 활용해서 속도를 올릴 수 있었다. 

그럼 보다 자세히 이 사례를 살펴보도록 하자. 먼저 연관검색어는 아래와 같은 기능이다.


사용자가 타이핑 할 때마다 연관 검색어를 찾아서 보여주는 것이다. 이 때 서버로의 호출이 일어나게 되는데 이 속도를 끌어올리기 위해서 기존에 정렬된 테이블을 이용하기 보다는 메모리 DB를 이용한 것이다. 

우선적으로 이베이에서 내부적으로 샤딩이 필요했는지는 모른다. 만약 검색해야 하는 데이터의 양이 한 서버의 메모리 안에 들어가기 어렵다면 우리는 서버를 분리시켜야 한다. 이 내용을 쉽게 이해하기 위해서 큐브리드에서 설명하고 있는 그림을 살펴보자.


[출처: cubrid.org]


이런 간단한 사례처럼 대규모 데이터 용량의 접근 속도를 올리고 싶다면 메모리 디비를 도입해보는 것을 추천한다. 물론, 데이터가 실시간으로 민첩하게 변경 되지 않은 경우에 해당한다. 여러 nosql 툴들이 데이터 백업과 fault 대비 그리고 다양한 메모리 구조들을 지원하고 있다.