概要
2008年、SUNマイクロシステムズはMySQL AB社を買収
2010年、OracleがSUNマイクロシステムズを買収
MySQLからMariaDBが分岐し、MySQL関係者(オプティマイザ開発者はほとんど移動)らがSkySQLを立ち上げる
“Save the People, Save the Product” – Michael Monty Widenius氏
Sunを退社してMonty Program ABを設立
MariaDBライセンス:GPL v2 のみ(MySQLは商用版とコミュニティ版)
Maria DB 10.0とは、MariaDB5.5をベースとして開発されており
MySQL 5.6の機能と、さらにMariaDBの独自機能を追加する方向で開発されている
※それまではMySQLをベースに作成されていたが、MySQL5.6で大規模リファクタリングされたため
独自機能を活かすためMariaDB5.5をベースとしている
WikipediaはMariaDB
googleも一部MariaDB
RHELやCentOSなどはデフォルトRDBがMariaDB
マルチマスター 4-5倍
MySQLと比較してSQL文はほぼ互換性があるが
アプリケーションによってはバージョンを確認し、起動しなくなるものがあるため注意
スレッドプール
mysqlについて、マルチスレッド型であり、クライアントとスレッドが1対1で対応する
そのためアクセスが増えれば増えるほどスレッドが増加し、コンテキストスイッチが大量に発生し
CPUキャッシュの位置、ホットロックの競合のため、パフォーマンスが下がる
スレッド数をクライアント数より小さくすることで改善されるが、CPUを使い切るためにもCPU数と同じ数のスレッドが理想的
mariadb5.1では静的スレッドプールを持っていたが、DBのように、スレッド同士が処理完了、IOやその他ロックにより依存するため動的が適している
mariadb5.5からは動的スレッドプールをサポートしている
スレッドによってリソースを制限可能(thread_pool_max_threads)
スレッドプールについて、クエリが比較的短く、CPUバウンドな負荷のときに効果的である
それ以外にも、スレッドを制限してメモリバッファを抑えたいときにも効果的
ただし、常に高負荷な環境や、とても長いクエリ、短いクエリがすぐに終了する場合は効率的とはいえない
thread_pool_size:スレッドグループ数、基本的にCPU数を指定し、パフォーマンスに一番大きく影響する数値となる
CPU数と同じということは実行できるタスク数を表す、そしてグループに1つのアクティブなスレッドを持つことが理想的な形となる
Mariadb 10.0.2からは、ネットワークI/Oの待ちも検出可能
■
スレッド作成と破棄の負荷を抑えるための機能
処理待ちのリクエストをプール内のスレッドに割当
sysbenchによるOLTPトランザクション比較すると約1.5倍の性能アップ!
機能
10.0.xで人気が高い機能として、マルチソースレプリケーションがあります。複数のマスターからデータベースの複製を行う機能
feedback_pluginはデフォルトで無効→有効にしてほしい。
マスタースレーブ環境でMySQLと比べてMariaDB環境の方が高速
innodb利用可能
ariaDBのサーバ群を管理するためのMariaDB ManagerとMariaDB Clusterから成ります
後者はMariaDBのサーバ、MHA(Master High AvailabilityManager and tools for MySQL)、Galera、これらに新しくMaxScale(MySQLプロキシに近いものとイメージ)が加わり構成
スロークエリログの出力詳細化
全件検索、全件結合、ディスクソートの有無を確認可能
統計力アップ
クライアント、ユーザ、テーブル、インデックスに関する詳細な統計が表示可能
※CPU時間や送受信倍とすうなど。
ストレージエンジン
XtraDB
InnoDB互換エンジン
トランザクション対応。マルチコア等、最新のハードウェア向けに処理を最適化
Percona社にて開発(GPL v2)
I/Oパスの強化、バッファプールの拡張性を強化
対象データがオンキャッシュでない場合は、XtraDBの方がTPSがはるかに高い(Transaction per sec)
MariaDB5.5までデフォルトエンジン(10.0からはInnoDBがデフォルト)
Aria
MyISAM互換エンジン
トランザクション/非トランザクション問わず、MySQLとMariaDBのデフォルトとなることを目指している
Monty Program AB社にて開発(GPL)
MyISAMのコードをベースにしているが、クラッシュセーフ
FederatedX
Federatedエンジンの不具合を修正し、新機能を追加(トランザクションをサポート)
Monty Program AB社にて開発(GPL v2)
参考URL
http://www.atmarkit.co.jp/ait/articles/1310/24/news028_2.html
https://mariadb.com/resources/guides-whitepapers
http://research.sakura.ad.jp/2013/02/14/mariadb-galera-cluster-1/
https://mariadb.com/kb/en/about/
http://www.ustream.tv/recorded/21156974