오늘은 "MySQL 클론의 역습" 두번째 글로 또다른 fork DBMS인 Percona Server에 대해서 적어볼까 한다.
2. Percona Server
Percona라는 회사는 MySQL에서 근무하던 엔지니어들을 주축으로 2006년도에 설립된 MySQL관련 컨설팅 전문 회사이다.
주로 MySQL 테크니컬 서포팅을 해오다가 MySQL이 Oracle로 인수 되던 해(2010)에 그동안의 노하우를 바탕으로 MySQL fork 프로그램인 Percona Server를 내놓았다.
Percona Server 역시 MariaDB처럼 MySQL의 완벽한 대체품을 가장 큰 목표로 삼고 개발 되었지만, 세부적인 컨셉은 MariaDB와는 약간 차이가 있다.
MariaDB가 MySQL의 완벽한 대체품 + 자신만의 다양한 기능 추가가 컨셉이라면, Percona Server는 MySQL의 성능 및 안정성, 편의성을 극대화 하는 것이 목표이다.
이런 컨셉이 이해가 되는 것이 Percona라는 회사 자체가 MySQL 테크니컬 서포트, 컨설팅이 주요 업무이 회사이다 보니, 이런 접근 방식이 그들에게는 그동안의 노하우를 자연스럽게 표출할 수 있는 방법이었지 않았을까 라는 생각이 든다.
하여튼 이러한 컨셉 때문인지 실제로 인터넷 상의 MySQL vs MariaDB vs Percona 성능 비교 테스트 결과를 보면 Percona의 성능이 가장 좋은 것으로 나타난다.
이제 Percona Server의 기술적인 특징들을 짚고 넘어가 보자.
Percona 사이트에 기술되어 있는 특징은 다음과 같다.
- Query가 보다 더 일관되고 빠르게 실행된다.
- 최신의 고사양 하드웨어를 보다 더 효율적으로 사용한다.
- 데이터를 샤딩해야 될 시점이 늦춰지거나, 아에 필요 없을 수도 있다.
- 호스팅이나 전력 비용을 절약할 수 있다.
- 관리나 성능 튜닝에 드는 시간을 절약할 수 있다.
- 높은 가동시간을 달성할 수 있다.
- 문제를 해결하는데 원인을 추측할 필요가 없다.
Query 성능 말고는 딱히 확인해 본바가 없어서 뭐라고 말할 수는 없지만, 하여튼 MySQL에 비해서 성능, 안정성, 관리의 편의성 등이 향상된것은 확실해 보인다.
실제 성능 테스트를 해본 결과로는 대체적으로 Query time이 MySQL보다 더 짧게, 그리고 일관되게 나오는 것을 확인 할 수 있었다. 다만 내가 테스트 했던 버전의 문제인지는 모르겠지만, Partitioning table에는 문제가 있어 보였는데, 이 부분은 추후 성능테스트 편에서 다시 자세히 이야기 하도록 하겠다.
위에 언급된 특징들중에 가장 큰 특징이자 장점이 하나 빠져 있는데, Percona는 XtraDB라는 InnoDB를 대체할 수 있는 Engine을 자체 개발해서 사용하고 있다.
XtraDB Engine은 InnoDB의 강화버전이라고 볼 수 있는데, 위에서 설명한 대부분의 특징이 XtraDB Engine에서 나온거라고 볼 수 있다.
XtraDB Engine은 현재 Percona에 기본 탑제되어 있고, MySQL에 추가할 수 있도록 Engine만 따로 제공하기도 한다.
그리고 MariaDB도 InnoDB를 대체할 목적으로 Percona가 개발한 XtraDB Engine을 기본 탑재하고 있다.
한편, Percona는 다년간의 MySQL 서포트, 컨설팅을 통해 축적된 노하우를 바탕으로 Percona Server 이외에 MySQL을 지원하는 다양한 소프트웨어들을 함께 개발하고 제공하고 있는데, 그 중 대표적인 소프트웨어인 Percona XtraBackup에 대해서 간단히 설명하도록 하겠다.
Percona XtraBackup은 실시간 백업을 지원하는 툴이다.
MySQL의 mysqldump는 백업시 해당 테이블이 Locking(MyISAM의 경우)되는데 비해 Percona XtraBackup은 테이블 Locking없이 백업(Hot backup)이 가능한 툴이다.
Percona의 문서를 보면, Parallel backups, Parallel compression,Streaming backups 등의 특징을 가지고 있으며, 무엇보다 Open Source이기 때문에 필요에 따라 수정도 가능하다.
Percona의 다양한 기능 및 추가 툴에 대한 내용은 여기에서 확인 할 수 있다.
'RDBMS' 카테고리의 다른 글
MySQL 클론의 역습 - 4 (TokuDB 편) (2) | 2013.07.01 |
---|---|
MySQL 클론의 역습 - 3 (Drizzle 편) (0) | 2013.07.01 |
MySQL 클론의 역습 - 1 (MariaDB 편) (0) | 2013.07.01 |