close
MySQL

구글과 위키피디아가 선택한 ‘마리아DB’

가 +
가 -

미국을 중심으로 탈 MySQL 움직임이 불고 있다.

사용자 참여형 온라인 백과사전인 위키피디아는 지난해 12월 관계형 데이터베이스 관리 시스템(RDBMS)를 MySQL에서 마리아DB로 교체했다. 리눅스 진영도 MySQL 대신 마리아DB를 지원하는 추세다. 레드햇엔터프라이즈리눅스(RHEL)을 시작으로 페도라와 오픈수세도 지난 4월부터 MySQL 대신 마리아DB를 도입했다.

마리아DB는 구글의 마음도 움직였다. 지난해부터 위키피디아와 구글의 마리아DB 전환을 직접 도왔던 마리아DB재단 콜린 찰스 수석 에반젤리스트 설명에 따르면, 구글은 지금까지 사용해왔던 MySQL을 모두 마리아DB로 바꾸는 작업을 진행중이다.

“오라클이 MySQL을 품에 안으면서 MySQL 분위기가 달라졌습니다. 버그 수정이나 기능 개선이 제대로 이뤄지지 않았지요. 더딘 MySQL 지원 정책에 구글은 올해 들어 마리아DB 10.x 버전을 시험 가동하며 내부 DBMS를 모두 마리아DB로 바꾸는 중입니다.”

colin mariaDB_500

MySQL은 전세계에서 가장 많이 쓰이는 오픈소스 RDBMS다. 썬마이크로시스템즈가 지난 2008년 10억달러에 인수했다가, 이후 썬이 오라클에 인수되면서 함께 넘어갔다.

콜린 에반젤리스트는 오라클이 MySQL을 지휘하면서 문제가 시작됐다고 지적했다. 오라클은 오픈소스 MySQL의 기능을 폐쇄적으로 가져갔기 때문이다. 쓸만한 확장기능이나 버그 개선 사항은 사용료를 지불해야만 쓸 수 있는 ‘엔터프라이즈용 MySQL’로 공개했다. MySQL이 예전같이 않다는 목소리가 개발자 커뮤니티 중심으로 터져나왔다.

“오라클은 MySQL을 인수한 후 버그 정책에 대해서 입을 닫았습니다. 테스트 사례도 공개하지 않았지요. 오픈소스 커뮤니티에 날린 코드가 제대로 해결됐는지, 실제로 버그가 고쳐졌는지 알 방법이 사라진 겁니다. 게다가 오라클은 해결한 버그 문제를 ‘오라클 버그 트래커 포 엔터프라이즈’란 솔루션으로 공개해 판매했습니다.”

사실상 커뮤니티가 개발한 MySQL의 기능은 점점 떨어져갔다. 대신 오라클이 상업용으로 선보인 ‘엔터프라이즈용 MySQL’은 오라클 지원을 받으며 나날이 성장했다. 오픈소스인 MySQL의 정신이 희미해진 셈이다.

“오라클의 폐쇄적인 움직임에 오픈소스 정신을 강조하는 리눅스 진영이 가만히 있을 리 없었습니다. RHEL을 시작으로, 페도라, 오픈수세가 MySQL로부터 등을 돌렸습니다. 오라클이 ‘오라클 리눅스’를 선보인 것도 무시할 순 없지요.”

제대로 이뤄지지 않는 기술 지원에 리눅스 운영체제를 둘러싼 정치적인 이해관계가 얽히면서 일부 기업은 MySQL을 대신할 오픈소스 DBMS를 찾기 시작했다. 그러다 눈에 띈 게 마리아DB다.

마리아DB는 MySQL을 개발한 몬티 와이드니우스란 개발자가 오라클의 MySQL 인수에 반발해 만든 오픈소스 RDBMS다. 마리아DB는 MySQL과 소스코드를 같이 하므로 사용 방법과 구조가 MySQL과 동일하다.

“물론 MySQL을 대신할 RDBMS로 PostgreSQL도 있습니다. 그러나 PostgreSQL은 MySQL과 다른 DB 알고리즘을 사용합니다. 마리아DB는 MySQL과 99.99%의 바이너리 호환성을 제공하지요. 기존 MySQL을 무리없이 손쉽게 마리아DB로 옮길 할 수 있습니다.”

게다가 마리아DB는 MySQL에 비해 초당 쿼리처리 속도에서 최대 10% 빠르다. 쿼리 최적화, 서브쿼리 지원 부문에서는 MySQL보다 더 뛰어낭 성능을 보인다. MySQL만큼 큰 규모의 오픈소스 지원 커뮤니티인 ‘마리아DB’에서 버그 리포트도 활발히 일어난다.

바로 위키피디아 MySQL 대신 마리아DB를 선택하나 이유다. 콜린 에반젤리스트 설명에 따르면 위키피디아는 기술 호환성을 보장하면서 끊임없는 기술지원을 마리아DB 장점으로 꼽았다.

“기존에 위키피디아는 MySQL과 페이스북용 MySQL 패치, 구글용 MySQL 패치를 함께 사용했습니다. 오라클 기술 지원이 제대로 이뤄지지 않았던 탓에 각 소스를 내려받아 개발자가 일일이 수정해 DB를 운영했습니다. 시간과 비용이 많이 들어간 거죠.”

위키피디아는 서버 300대를 개발자 1명이 운영하고 있는 구조다. 새로운 MySQL 기능이 나오거나 발견될 때마다 개발자는 고민했다. 각 오픈소스 진영에서 무료로 개발한 기능을 다시 위키피디아의 맞춰 수정해야했기 때문이다.

“마리아DB는 커뮤니티에서 패치를 제공합니다. 마리아DB가 해당 패치를 어떻게 사용했는지 테스트 결과도 보여주고 품질 테스트(QA) 결과도 함께 제공합니다. 엑스트라DB랑 LRM 성능도 개선했습니다. 여기에 서포트 릴리즈가 되기 때문에 기존에 있던 개발자가 나가더라도 문제 없이 기존 시스템을 관리할 수 있습니다.”

매일 읽고 쓰는 데이터가 많은 위키피디아로썬 신경 써야 할 요소가 많은 MySQL보다 적게 신경써도 되는 마리아DB가 매력적으로 다가왔을 터다.

“사실 구글도 같은 이유에서 마리아DB를 단계적으로 도입하고 있습니다. 구글에서 매번 MySQL 패치를 만들기보다는 커뮤니티에서 만들어서 적극 활용하고 있는 마리아DB를 눈여겨보기 시작했지요.”

구글은 특히 오는 2014년 2월 정식 출시될 마리아DB10.0x 버전에 추가되는 글로벌 트랜잭션 식별자(GTID) 기능에 관심을 보였다고 콜린 에반젤리스트는 설명했다.

“GTID는 마스터와 슬레이브 서버 간 복제 진행 상황을 추적하고 비교하는 기능을 말합니다. 마스터 서버가 장애가 났을 때 훨씬 더 간단하게 복구할 수 있지요. 고가용성을 제공하는 서드파티 프레임워크에 의존할 필요가 없는 겁니다.”

쉽게 얘기하면 GTID는 서버가 장애가 나서 다운됐어도 무리 없이 시스템을 운영할 수 있게 도와주는 기능이다. 주로 활용하는 마스터 서버에서 장애가 발생하면 슬레이브 서버가 마스터 서버로 승격되면서 데이터를 다른 서버들과 주고받는다. 데이터 백업이 자동으로 이뤄지면서 고가용성 서비스를 유지할 수 있게 돕는다는 얘기다.

“MySQL5.6에도 GTID 기능이 있습니다. 하지만 오라클에서 GTID를 쓰려면 오라클 DB를 재시작해야 한다는 문제가 있지요. 마리아DB 10.0x 버전은 그렇지 않습니다. 현재 나온 마리아DB 10.06 베타에서는 GTID가 원활하게 작동합니다.”

미국만 마리아DB에 관심이 많은 것은 아니다. 국내에서도 마리아DB를 적극 도입해 활용하는 분위기다. 카카오톡은 지난해부터 메신저 애플리케이션에 MySQL 대신 마리아DB를 쓰기 시작했다. 콜린 에반젤리스트는 “NHN과 SK브로드밴드, SK텔레콤 역시 마리아DB 도입을 검토 중”이라고 귀띔했다.

“짧은 시간 안에 마리아DB가 MySQL을 대체하지 않을까 기대합니다. 매출로 비교하면 상용 솔루션을 파는 MySQL과 마리아DB는 비교가 안 되겠죠. 하지만 설치 점유율을 따지면 마리아DB가 곧 MySQL을 따라잡을 것으로 생각합니다.”

네티즌의견(총 5개)