"마리아DB, 마이SQL과 동반 성장"
카카오 엔지니어 성동찬씨의 경험기
마이SQL의 창시자가 개발을 주도하는 오픈소스 관계형데이터베이스(RDB) '마리아DB'는 구글, 레드햇 등의 지지를 받으며 가파른 성장세를 보여왔다.
마이SQL이 오라클로 넘어가면서 종속을 우려하는 개발자들 사이에서 마이SQL의 대안으로 부상했다는 얘기도 들린다. ‘마리아DB’는 과연 실전에서 어느정도 가치가 있을까?
최근 ‘마리아DB 실전 활용 노하우(한빛미디어, 9900원)’란 전자책을 저술한 카카오의 데이터베이스관리자(DBA) 성동찬 씨를 만났다. 카카오는 국내에서 가장 적극적으로 마리아DB를 도입한 대표적인 기업이다. 성동찬 씨는 카카오에서 마리아DB를 직접 테스트하고 사용하면서 겪었던 경험을 책에 담았다.
그의 책은 마리아DB 설치 방법을 간단히 소개하고 마리아DB와 마이SQL의 차이점을 설명한 뒤 실제 경험사례와 유용한 유틸리티를 소개하는 식으로 꾸며졌다.
성동찬 씨는 “마리아DB는 마이SQL을 잘 활용해온 사람이라면 쉽게 접근할 수 있는 DB라고 생각한다”라며 “아키텍처, 사용 매뉴얼까지 마이SQL과 유사하기 때문에 마리아DB에 대해 어렵게 느꼈던 사람의 진입장벽을 허물어주기 위해 집필을 결정했다”고 말했다.
또 “오히려 마이SQL과 거의 유사하다는 점에 처음 마리아DB 책을 써보자는 제안을 받았을 때 겹치는 내용을 적을 수는 없어서 무슨 내용을 넣어야 할 지 고민했을 정도”라고 설명했다.
마리아DB는 마이SQL의 창시자인 마이클 몬티 위드니우스의 주도로 개발된 오픈소스 DB다. 오라클의 썬 인수로 마이SQL의 소유권이 오라클로 넘어간 뒤 만들어졌다.
같은 창시자를 가진 만큼 마리아DB는 마이SQL과 쌍둥이란 소리를 들을 정도로 유사하다. 마리아DB는 마이SQL과 동일한 코드에 기반했고, 사용방법과 구조가 같으며 마이SQL과 바이너리호환성 99.99%를 제공한다. 마리아DB란 명칭도 위드니우스의 딸 이름에서 따왔다는 점에서 마이SQL과 같다.
위드니우스는 오라클이 썬을 인수한 뒤 마리아DB를 만들고, 몬티프로그램을 설립해 마리아DB 지원과 유지보수 서비스를 제공했다. 2009년 스카이SQL이란 회사는 마리아DB의 상용 서비스 활용에 대한 지원을 제공한다. 스카이SQL은 올해 4월 몬티프로그램을 인수했다.
마이클 몬티 위드니우스는 “마리아DB는 이노DB 스토리지 엔진을 제외한 마이SQL에 있는 기능 대부분이 썬 때 있었던 기능들”이라며 “오라클 인수 후 마이SQL은 발전하지 않았고, 오라클은 ‘마이SQL을 어떻게 하면 자신들의 소유로 할 수 있을까’만 고민했고, 그래서 회사를 나왔다”라고 밝혔었다.
결국 마리아DB는 스토리지엔진을 제외하면 마이SQL 5.5버전과 동일한 기능을 제공하고, 바이너리호환성도 100%에 가깝다. 다만, 마리아DB는 오라클 소유인 이노DB를 대체하기 위해 여러 스토리지 엔진을 옵션으로 제공한다. 마리아DB는 마이ISAM, 블랙홀, CSV, 메모리, 아카이브 등 마이SQL에서 지원했던 주요 오픈소스 스토리지엔진 지원기능을 포함한다.
성동찬 씨도 마리아DB의 스토리지엔진에 적지 않은 분량을 할애했다. 엑스트라(Xtra)DB, 아리아(Aria), 페더레이티드엑스(FederatedX), 토쿠(Toku) DB 등에 대한 설명을 책에 집어넣었다.
써보면서 발견했던 마리아DB의 수많은 버그에 대한 설명도 곁들였다.
그는 “최근 버전에서 해결된 문제인데, 큰 테이블에서 데이터를 추출할 때 특별한 카운트만 뽑고 싶을 때 조회를 날리면 어떤 경우 데이터가 있어도 0건으로 추출됐다”라며 “당시 메모리 테이블 사이즈 제한을 늘려 돌아가게 했다”라고 일화를 소개했다.
그는 “마리아DB의 버그는 대부분 카운트에 대한 부분으로 개인적으로 마리아DB가 아리아 스토리지엔진을 내부 테이블로 넣으면서 생기는 버그가 아닐까 추측하고 있다”라며 “DB 링크와 같은 역할을 하는 페더레이티드DB는 트랜잭션까지 할 수 있게 해 좋지만, 여전히 많은 데이터를 처리하기에는 쿼리 사용 시 주의할 점도 있어서 위험하다. 하지만 많이 개선되고 있다”는 의견을 덧붙이기도 했다.
기본적인 설명 이후 나오는 여러 유틸리티에 대한 부분도 흥미롭다. 그는 자신이 직접 테스트한 내용을 집어넣었다. 마이SQL과 마리아DB에서 모두 쓸 수 있는 유틸리티 가운데, 직접 써보면서 큰 문제없이 서비스에 유용할 거라 생각되는 걸 넣었다.
마리아DB는 사실 오라클의 오픈소스 마이SQL에 대한 배타적인 모습에 반발해 만들어졌다. 때문에 마이SQL과 마리아DB가 배타적 경쟁관계로 보이기도 한다. 위키피디아가 마이SQL에서 마리아DB로 바꿨고, 레드햇, 수세 등의 리눅스도 기본DB를 마리아DB로 변경했다. 작년 전세계 최대 규모 마이SQL 사용자인 구글이 마리아DB로 변경하겠다고 밝히기도 했다.
성동찬 씨는 두 기술에 대해 제로섬게임은 아니라는 입장을 보였다. 다만 전체적인 퍼포먼스 측면에서 마리아DB의 우세를 조심스럽게 밝혔다.
그는 “마이SQL과 마리아DB는 배타적이기보다 상호 간에 상승효과를 주면서 함께 발전하고 있다”라며 “마리아DB에 없는 기능이 마이SQL에 있기도 하고, 서로의 새로운 시도를 벤치마킹하면서 추가하는 등 각자 발전하는 모습이다”라고 강조했다.
그러나 “동일한 측정장비가 없어 성능 비교를 거론할 수는 없지만, 스레드풀처럼 마이SQL에 있다가 사라진 기능을 마리아DB에선 제공한다든지 여러 측면에서 마리아DB가 낫다고 본다”라며 “SSD를 가장 먼저 적용하려 하는 모습처럼 새로운 기술을 빠르게 채택하고 지원하려는 모습은 마리아DB의 미래가 마이SQL보다 더 좋다고 볼 수 있는 부분”이라고 말했다.
마이SQL과 마리아DB가 서로 발전하는 부분에는 빅데이터도 있다.
그는 “토쿠DB는 마이SQL에서 빅데이터에 접근하기 위해 만든 엔진으로 프랙탈 인덱스로 접근해서 많은 데이터 변경사항의 I/O를 줄이면서 빠르게 데이터를 쓰고, 일정 압축도 제공해 메모리 효율적으로 사용하는 것”이라며 “로그수집서버에 적용해도 좋은 용도라는 게 결론”이라고 설명했다.
또 “둘 중 하나만 남기보다 사용자 용도에 맞게 계속 함께 갈 것이라 본다”라며 “오히려 OLTP에 있어선 오라클DB보다 마이SQL과 마리아DB의 성능이 낫고, 소셜네트워크(SNS)의 경우 라이선스에서 두 솔루션 다 절대적인 우위를 갖는다”고 덧붙엿다.
성동찬 씨는 현재 네이버 카페 ‘MySQL Power Group’이란 커뮤니티에서 활동중이다. 작년말 만들어진 마이SQL 전문 커뮤니티로 활발한 의견교류와 고급정보 공유가 이뤄지고 있다고 소개했다.
그의 책 ‘마리아DB 실전 활용 노하우’는 아직 완결된 상태는 아니다. 현재 최종수정작업을 진행중으로 이달말이나 다음달초 최종본이 출간될 예정이다.
(출처: http://www.zdnet.co.kr/news/news_view.asp?artice_id=20140217111932)