차세대오픈소스 RDBMS MariaDB
MariaDB 소개 MariaDB 주요특징 MariaDB 관리도구 MariaDB 고가용성 (HA) MariaDB 도입사례와기대효과 MariaDB 서브스크립션
MariaDB 소개 차세대오픈소스 RDBMS MariaDB
2006 2012 01 October 2014 MariaDB Corporation 1981 1995 2007 2008-2009 2010 2013 2014 Coding starts
첫째딸 My 둘째딸 Maria 마이클와이드니어스曰 아마도 InnoDB 스토리지엔진을제외한 MySQL 에있는기능대부분은썬마이크로시스템즈때있었던기능들입니다. 오라클인수후 MySQL 은발전하지않았습니다. 오라클은 MySQL 을어떻게하면자신들의소유로할수있을까 만고민했고, 그래서회사를나왔습니다. MariaDB 는? MySQL 창업자이자핵심개발자였던마이클와이드니어스가 MySQL 를인수한오라클의 MySQL 의개발지침등에대한의견차가생겨, MySQL 을완벽히대체하기위해만든 RDBMS 입니다.
MariaDB 는진정한 Open Source DBMS Oracle MySQL 은 NOT open source Oracle MySQL Enterprise plugins 으로만지원 MySQL Staff 90% 이상참여하여개발 Full Server Engineering Team MySQL 소스개발자 MySQL 호환성 MySQL 과 99% 호환됨 MariaDB 의유연성 RHEL, CentOS, Fedora, SUSE, Debian, Ubuntu 등다양한 O/S 환경에서가능 LGPL Connector 사용 ODBC, JDBC, C, Perl 등을지원
레드햇, MySQL 대신마리아 DB 지원사격 왜?
ORACLE MySQL Standard (GPL/Commercial) ORACLE MySQL Enterprise (GPL/Commercial) MariaDB Enterprise Standard (GPL) MariaDB Enterprise Advanced (GPL) Postgres Plus Advanced Server (BSD/Commercial) Postgres Solution Pack (BSD/Commercial) General Public License
MariaDB created by MySQL team MariaDB Corp. founded MariaDB Enterprise Released MariaDB MaxScale Encryption MariaDB ColumnStore Time 2016 2015 SmartFin 2010 2012 Wikipedia 2013 Red Hat Intel Capital 2014 SUSE IBM Microsoft Azure AWS Pivotal Cloud Foundry
MariaDB 는해외주요업체들의도입성공사례, 커뮤니티를통한빠른수정과배포, 전문유지보수업체의존재등오픈소스 SW 가성장할수있는 3 가지요소가잘맞아떨어지면서빠르게성공하고있습니다. Finance Travel Retail Telecom Technology & Gov. / Edu. Media & Social
MariaDB 주요특징 차세대오픈소스 RDBMS MariaDB
Application CONNECTORS C JDBC ODBC SQL MariaDB Enterprise KERNEL EXTENSIBILITY REPLICATION KERNEL Parallel Slave SQL Parser Cache/Buffer Optimiser STORAGE LAYER EXTENSIBILITY Transactional InnoDB In-Memory MyISAM Original Core MariaDB MariaDB Engineering Community Contribution OPERATING SYSTEM / FILE SYSTEM / SAN / CLOUD
Application CONNECTORS C JDBC ODBC SQL MariaDB Multi-Master Cluster MariaD MariaD B B MariaDB REPLICATION MariaDB Enterprise KERNEL EXTENSIBILITY KERNEL PRODUCTION PLUG-INS Replicas Supporting Asynchronous, Semi-Sync, and Synchronous replication Parallel Slave Transactional Multi-Source In-Memory SQL Parser Cache/Buffer Optimiser STORAGE LAYER EXTENSIBILITY NoSQL / Interoperability Graph & Search Handler Socket Etc. 40+ Plugins Scalability Analytics Original Core MariaDB MariaDB Engineering InnoDB XtraDB MyISAM Memory Aria CONNECT MyROCKS Cassandra OQGraph Sphinx Mroonga Spider TokuDB ColumnStore ScaleDB... Community Contribution OPERATING SYSTEM / FILE SYSTEM / SAN / CLOUD
Application CONNECTORS C JDBC ODBC SQL NoSQL CRUD API MariaDB Multi-Master Cluster MariaDB MaxScale MariaD MariaD B B MariaDB Replicas Supporting Asynchronous, Semi-Sync, and Synchronous replication REPLICATION BinLog API GTID Parallel Slave Multi-Source Transactional In-Memory MariaDB Enterprise KERNEL EXTENSIBILITY SQL Parser Cache/Buffer KERNEL Connection Pool Optimiser Temporal STORAGE LAYER EXTENSIBILITY NoSQL / Interoperability Graph & Search PRODUCTION PLUG-INS Authentication PL/SQL AWS KMS Audit Handler Socket Etc. 40+ Plugins Scalability Analytics Original Core MariaDB MariaDB Engineering InnoDB XtraDB MyISAM Memory Aria CONNECT MyROCKS Cassandra OQGraph Sphinx Mroonga Spider TokuDB ColumnStore ScaleDB... Community Contribution OPERATING SYSTEM / FILE SYSTEM / SAN / CLOUD
MariaDB 10.2 MariaDB 5.5 Efficient threadpool Non-blocking client library LIMIT ROWS EXAMINED option Extended keys for XtraDB/InnoDB New SphinxSE Security fixes, new status variables, etc MariaDB 10.0 Replication Parallel replication Global Transaction (GTID) Multi-source replication Engines Connect, TokuDB, Spider Sequence, Cassandra, Mroonga Engine independent statistics SHOW EXPLAIN (query execution plan for running queries) Roles MariaDB 10.1 Full integration of Galera Cluster i nto MariaDB Better GIS support: Full OGC com pliance - map data (ideal, but not her e yet) Advanced encryption: Instance an d table level encryption with support for rolling keys Optimistic Parallel Replication InnoDB improvements Multi-threaded flush Page compression for FusionIO/n vmfs Ability to replicate cross cloud; pu blic/private Better design for HA across AZs an d regions; better handling of geo-re plication; leverage S3/Swift etc for ba ckups Multi-tenancy solution Cloud enabled connectors - failove r, load balancing Galera 5.0 and Spider integration Parallel Query Execution Macro support for common comm ands Slow query filter t Rocksdb engine - extreme perf - dis k optimization; interop - app read th e data from both systems; Native support of Json and second ary indexes in MDB Rest API to request data ( Json ) Major Version Stable (GA) Date Five year (EOL) date 5.5 09 Dec 2014 09 Dec 2017 10.0 24 June 2014 24 June 2019 10.1 11 January 2016 11 January 2021 10.2 2017년 GA 예정
IBMDB21 버전 5.1.55 제거됨 MyISAM 버전 5.5 이전엔진,5.5 ( 이후엔진에서제외 ) InnoDB MySQL 기본엔진, 참조무결성제한, 높은동시성보장 Cassandra 10.0 에서포함, 컬럼베이스의 NoSQL SphinxSE 버전 5.2 이상에서지원, Full-Text Searching 이지원하는스토리지엔진 FederatedX MySQL Federated 파생엔진, 트랜잭션제공 MyISAM 버전 5.5 이전엔진,5.5 ( 이후엔진에서제외 ) Aria MyISAM 에서파생엔진대체용으로명칭은 Aria ( 이전명칭은 Maria) TokuDB Fractal Trees 라는인덱스데이터구조를사용파일의높은압축률 InnoDB MySQL 기본엔진, 참조무결성제한, 높은동시성보장 XtraDB(enhaced InnoDB) InnoDB 대체하기위해만든파생포크 OQGRAPH 버전 5.2 이상에서지원 Graph 형태로출력기능제공
5.5 MariaDB 5.5 is a stable (GA) release of MariaDB. It is MariaDB 5.3 + MySQL 5.5. Version 5.1 Version 5.1 Version 5.2 10.0 MariaDB 10.0 is a stable (GA) release of MariaDB. It is built on the MariaDB 5.5 series with backported features from MySQL 5.6 and entirely new features not found anywhere else. Version 5.3 Version 5.5 Version 5.6 Version 5.5 Version 10.0 10.1 MariaDB 10.1 is the current stable (GA) release of MariaDB. It is built on MariaDB 10.0 with features from MySQL 5.6 & 5.7, and entirely new features not found anywhere else. Version 5.7 Version 10.1 Version 10.2 10.2 MariaDB 10.2 is the current development release of MariaDB. It is built on MariaDB 10.1 with features from MySQL 5.6 & 5.7, and entirely new features not found anywhere else.
(that are not in MySQL including 5.6) High Performance Developers DBAs NoSQL Thread pool Microsecond precision & type Segmented MyISAM keycache Handler Socket Group commit in the binary log SphinxSE for full-text search Authentication plugins - PAM, Active Directory Dynamic columns Non-blocking client library Sub queries materialize LIMIT ROWS EXAMINED GIS functionality Progress reporting
VERSION MySQL Community Oracle MySQL Enterprise MariaDB Community MariaDB Enterprise Thread Pool X O O O 상용버전 FREE FREE 지원안함 Plug-in Built-in Built-in 폐쇄적공개적공개적 MySQL 의쓰레드풀아키텍처 MariaDB 의쓰레드풀아키텍처
Use: Thread Pool High Performance Pool of threads Not use: Thread Pool Low Performance Thread per connection 과거와달리, 워커쓰레드모델을지원함으로써 Thread Pool 을사용하면 OLTP 에서 60% 성능향상
Thread Pool 100 300 500 700 900 1100 MySQL Off 1,796,163 1,395,499 784,918 499,137 338,722 282,924 MySQL On 2,513,353 1,625,664 945,076 564,873 389,294 319,893 MariaDB Off 1,733,086 1,524,275 855,835 543,165 333,512 233,996 MariaDB On 2,486,880 1,931,413 1,963,508 1,639,744 1,558,480 1,390,421 Thread Pool 기능을사용할경우 MariaDB 가더나은성능향상을보임
Replication 기능향상 Global Transaction ID(GTID) 사용 Multi-Source Replication 추가 Parallel Slave( 슬레이브에서병렬트랜잭션을처리하여슬레이브지연이향상 ) 스토리지엔진기능추가 Cassandra Storage Engine(NoSQL) Connect Storage Engine( 외부또는원격데이터엑세스 ) Sequence Storage Engine( 메모리에저장되어쿼리사용 ) Spider Storage Engine( 샤딩기능이내장된스토리지엔진 ) TokuDB( 쓰기속도의고성능워크로드를위해설계된엔진 ) Optimizer 기능향상 독립적인통계데이터제공 ( 최적의실행계획을선택하는쿼리최적화프로그램제공 ) Histograms( 데이터쿼리최적화프로그램 ) EXISTS( 서브쿼리최적화 )
보안기능강화 테이블및테이블스페이스레벨 (binlog 포함 ) 암호화지원 패스워드검증플러그인 Roles Based Access Control 강화 (Default roles 포함 ) 고가용성기능강화 MariaDB 와 Galera Multi-Master Cluster 기술의완전한통합 확장성향상 Optimistic Parallel Replication Master-to-Slave 복제성능향상 Row-based 복제시 Slave 에서 Trigger 실행 WebScaleSQL 성능향상 성능향상 Query timeouts (long running query) InnoDB 성능개선 (Multi-threaded flush, Page compression FusionIO/nvmfs, InnoDB Defragmentation) Optimizer 기능향상 - EXPLAIN JSON, EXPLAIN ANALYZE(with FORMAT=JSON)
MariaDB 관리도구 차세대오픈소스 RDBMS MariaDB
MariaDB Enterprise Monitor 는 MONyog 을바탕으로 DBA 업무에관한모니터, 관리, 튜닝및데이터베이스응용프로그램의정확한문제를파악하는데도움을줍니다. - 실시간쿼리스나이핑 (Query sniping) 기능을갖춘쿼리분석기 - 구성관리및오류로그모니터링 - Replication 관리자, Disk 및 Lock 모니터링 - 실시간모니터링및 History 와 Trend 분석 - 이력및추이분석, 웨이백머신 (Wayback machine): 특정시점의 MariaDB 상태확인가능
MariaDB Visual Editor, SQLyog 는 Webyog, Inc. 의 MariaDB, MySQL GUI Tool 로개발되었으며, Windows XP/2003 부터 Window 8/Server 2008 R2 플랫폼을지원합니다. - 스키마와데이터동기화 - SSH 와 HTTP 터널링 - 자동완성및 SQL 포맷팅 - 비주얼쿼리빌더및쿼리프로파일러 - 데이터검색및스키마최적화와인덱스분석기 - 비주얼스키마디자이너
MariaDB 고가용성 (HA) 차세대오픈소스 RDBMS MariaDB
구성방법 H/A 형태특징비고 MariaDB DRBD Active/Standby - Shared Nothing 방식 - DRBD 로각노드디스크동기화 MySQL Cluster CGE (Carrier Grade Edition) Active/Active - Shared Nothing 방식 - NDB 스토리지엔진만지원 MariaDB with RHCS (Red Hat Cluster Suite) Active/Standby - Shared Disk 방식 - RHCS 로 failover 감지 3rd Party 제품 - Shared Nothing 방식 MariaDB MHA (Master High Availability) Active/Standby - Replication 응용방식 - Master fail 발생하면 Slave가새로운 Master로 Fail-over MariaDB for Galera Cluster Active/Active - Shared Nothing 방식 - InnoDB/XtraDB 를이용한클러스터
동기식데이터복제방식 모든노드에서 Read/Write 가능 SPOF(Single Point of failure) 없음 Active Active 방식 InnoDB, XtraDB만지원 자동으로신규노드추가및장애노드제거 ROW 레벨의병렬복제 무손실데이터보장 Read & Write Read & Write Read & Write Galera Replication
Galera Cluster 의장점 Synchronous 방식으로마스터 / 슬레이브간에데이터동기화지연없음 노드간유실되는트랜잭션이없음 읽기 / 쓰기모두확장이가능 데이터가각로컬에존재하므로클라이언트의대기시간이감소 분산이나장애처리를위한 VIP가필요치않음 ( 필요에따라 VIP 사용 ) Hot Standby : Failover 에대한 Downtime 불필요 Galera Cluster 의단점 최소 3개이상의노드필요 (Split-brain 방지 ) 모든노드는동일한데이터를유지함으로저장공간소모 쓰기확장으로인한한계점존재 ( 서버간 Group Communication시트래픽발생 ) PK 반드시필요
MaxScale complements MariaDB Enterprise Application-to-Database 백엔드데이터베이스클러스터의복잡성으로부터클라이언트애플리케이션을격리 Database-to-Database 데이터베이스간상호운용성간소화 데이터보안 성장에따른확장 가용성보장 관리효율성
차세대오픈소스 RDBMS MariaDB MariaDB 도입사례와기대효과
공개 SW 로만든국민모바일메신저 기관 : 카카오 수행년도 : 2010년 ~ 현재 도입배경 : 대용량 DB 처리및더욱빠른메시지처리 솔루션 : MySQL, MariaDB, TokuDB, 멤캐시드 (Memcached), 카산드라 (Cassandra) 도입효과 : 정형 비정형데이터및대용량데이터의빠른처리, TCO 절감, 사용목적에맞도록활용할수있는커스터마이징등 MariaDB < 카카오톡 DB 구성도 > MySQL 과 MariaDB 의콜라보레이션으로 DB 성능강화 카카오의성공요인으로는 타이밍 과 속도 를들수있다. 단 4 명의멤버로 TF 를구성해두달만에카카오톡을개발한카카오는핵심기능으로구성된서비스를빠르게내놓고사용자피드백을수렴해발전시켜나가는전략을구사하고있다. 이러한카카오의성공가두의밑단에는바로공개 SW DB 의적극적인도입과활용이한몫을했다. 1 억명이넘는사용자를보유한카카오톡은방대한양의메시지가오간다. 텍스트를비롯해사진, 음성, 동영상등그형태도다양하다. 정형, 비정형데이터가난무하고있다. 현재카카오에서사용하고있는 DB 솔루션은 MySQL 을비롯해 MariaDB, TokuDB, 맥캐쉬, 카산드라등이다. 우선카카오톡은메신저애플리케이션출시초기 MySQL 을 DB 로사용했다. 그러나카카오톡은작년부터 MySQL 을 MariaDB 로교체하는작업을시작했다. MySQL 에서제공하지않는기능들을 MariaDB 에서는제공하기때문이다. 출처 : 공개 SW 포털 (http://www.oss.kr/oss_repository10/517682)
MariaDB Memcached 톰캣등 공개 SW 로만든소셜커머스 기 관 : 티켓몬스터 수행년도 : 2009년 12월 ~2010년 5월 (6개월) 도입배경 : TCO 감소와특정벤더의종속성, 의존도에벗어날수있다는점, 개발제약사항없음 솔루션 : MySQL, MariaDB, Redis, Memcached, Tomcat, Apache Http Server 등 도입효과 : 비용절감및월 1300만명의방문자대상으로안정적인서비스구축 < 티켓몬스터구조도 > 출처 : 공개 SW 포털 (http://www.oss.kr/oss_repository10/548559) 티켓몬스터가 MariaDB 를사용하는이유 티켓몬스터는초기에는 MySQL 만썼다. 하지만이후마리아 DB 를비롯한공개 SW 를꾸준히모니터링하다지난 2013 년초부터마리아 DB 를순차적용해보고있다 마리아 DB 를검토하는이유는크게 2 가지다. 첫번째는쓰레드풀이다. 쓰레드풀은실제내부에서디스크에액세스할때쓰레드를생성하는데이전에는쓰레드를하나만들었다가폐기하는과정을반복했다. 하지만쓰레드풀을이용하면하나만생성해서계속재활용할수있다. 쉽게말해메모리를마음대로늘릴수있는기능으로생각하면쉽다. 그런데 MySQL 의경우이기능은상용인엔터프라이즈에만들어가있다. 이에비해마리아 DB 는이기능을기본지원한다. 두번째이유는샤딩 (Sharding) 기능때문이다. 샤딩은소프트웨어적으로 DB 를분산처리할수있는구조를만들어주는기술이다. 마리아 DB 10 버전이이를지원한다. 티켓몬스터가 10 버전을고려하는것도유연한확장을감안한것이다.
공개 SW 로저비용고효율 IT 아키텍처구현 기 관 : GS 샵 수행년도 : 2014 년 5 월 도입배경 : 시스템의확장으로인한 TCO 절감 솔루션 : MariaDB, MySQL, Apache, Tomcat, Spring Framework, 레디스 (Redis) 도입효과 : 상용 DB 부하분산및저비용스케일아웃 (scale out) 이가능한구조로인한 TCO 절감과신속한성능개선가능. 자체기술역량을보유함으로인해벤더종속성을피할수있고개선활동수행용이 <GS 샵마리아 DB 구성도 > 출처 : 공개 SW 포털 (http://www.oss.kr/oss_repository10/600399) 상용 SW 만으로는감당어려워일찍이공개 SW 를적용 GS 샵은모바일서비스가확장되고, 그에따라거래금액도점차늘어나면서비용효율적인 IT 아키텍처에대한고민을하게되었다고한다. 이에대한해결책으로발빠르게공개 SW 를검토해도입을추진하기시작했다. 스케일아웃구조로커지고있는시스템을감당하기에상용 SW 의비용은너무나도벅찬문제였다는최차장의설명이다. 이중첫번째로 GS 샵이추진한것은 DBMS 를공개 SW 기반으로전환하는것이었다. 2008 년까지 GS 샵의 DBMS 는전부상용 SW 인오라클을기반으로한것이었다. 상용 SW 를대신해데이터마트분석계에우선적용시켜본것이다. 온라인몰에서사용하는일부서비스에한해서였지만, 상용 SW 가부담하고있던부하를분산시키고비교적낮은비용으로도시스템확장이가능하다는이점을확인할수있었다고한다. 이후에도해당서비스에대한확신이더욱견고해졌고, 자연스럽게상대적으로업무중요도는낮지만시스템에서부하가많이걸리는부분에대해서도공개 SW 적용을확대해나가게된배경을설명했다.
MariaDB 서브스크립션 차세대오픈소스 RDBMS MariaDB
비교 MariaDB Enterprise Standard Advanced MariaDB Enterprise Cluster 이제품은? 기본서브스크립션으로 MariaDB Enterprise 의인증된바이너리와기술전문지식에대한접근을제공합니다. 3 rd -party 도구, 컨설팅지원, 비상대응및사전예방적유지보수가추가되어있습니다. 고급데이터베이스클러스터링기능과고가용성생산환경을지원합니다. CAPABILITIES MySQL 과호환성 MySQL 을넘어향상된성능, 확장성, 가용성 (MariaDB 10.1, 10.0, 5.5 에대한사전구축, 강화, 통합테스트된바이너리와설치 ) 쉬운설치 최적화된바이너리 ( 컴파일타임최적화의이점으로표준서버바이너리는견고한 15~20% 성능향상을보여줍니다.) LGPL connectors (MariaDB 와인증된 ISV 들에의해테스트된 C, Java, ODBC 커넥터들 ) Amazon AWS KMS Docker Containers Chef Recipes and Cookbook MariaDB MaxScale 애드-온 Active-active Multi-master 기술 True Synchronous Replication 인증된바이너리 인증된플러그인 + 스토리지엔진 Pre-loaded MariaDB Audit (Requires activation post install)
비교 서브스크립션서비스 MariaDB Enterprise Standard Advanced MariaDB Enterprise Cluster MariaDB 10.1, 10.0, 5.5 지원 MySQL 지원 (MySQL on POWER8 은지원하지않음 ) 이메일및웹연락 MariaDB 포털 원격로그인 로드맵 Patches & Fixes 보안업데이트 알림서비스 서비스레벨 지원범위 Business Hours 24x7x365 24x7x365 인시던트수제한없음제한없음제한없음 Break/Fix 지원 긴급응답시간 2 hours 30 minutes 30 minutes 컨설팅지원 번들소프트웨어 엔터프라이즈모니터링 (MONyog Ultimate Monitor) 쿼리분석기 (the part of MONyog) 비주얼쿼리에디터 (SQLyog Ultimate) 핫백업 (Percona XtraBackup)
구분 MariaDB Enterprise Advanced Oracle MySQL Enterprise 지원하는배포판 MariaDB, MySQL Oracle MySQL 라이센싱 GPL GPL/Commercial 별도요금없이 지원하는버전 이용가능한엔진 MariaDB 10.1, MariaDB 10.0, MariaDB 5.5, MySQL MyISAM, Aria, InnoDB, XtraDB, PBXT, Archive, BLACKHOLE, Memory, MERGE, CSV, SphinxSE, TokuDB 5.7, 5.6, 5.5, 5.1 MyISAM, InnoDB, Archive, Memory, CSV 지원하는고가용성플랫폼 Galera, MHA, DRBD, MySQL Cluster MySQL Cluster 모니터링툴 MariaDB 엔터프라이즈모니터 로그및쿼리분석기 MySQL 엔터프라이즈 모니터와쿼리분석기 사용자툴 MariaDB 비주얼쿼리에디터와 데이터모델러및쿼리빌더 MySQL 워크벤치와 데이터모델러 VM 지원 Linux, Windows & Solaris 게스트 OS - 외부인증 PAM(MariaDB only) - Thread Pool 5.5(MariaDB only) Commercial 5.5
Subscription Services 모든버전의 MariaDB 및 MySQL 데이터베이스를위한서버소프트웨어, 생산지원, 모니터링, 쿼리분석기, 쿼리에디터, 핫백업툴등을포함한서비스 L0 ~ L3 기술및컨설팅지원 Consulting MariaDB 및 MySQL 기술을지원하는최고수준의팀 상태점검부터지속적인운영지원까지광범위한서비스제공 Training (Education) 코오롱베니트 MariaDB 교육실시 (1 일과정개설, 4 일심화과정개설준비중 )
감사합니다.