先日、MySQL5.5 がめでたく GA を迎えた MySQL について、 Oracle の MySQL シニアエバンジェリスト梶山隆輔(@RKajiyama)氏から、そのこれからについて聞ける機会をいただいた。
MySQL の現状についての共有は 9 割方は既知であったが、これからの MySQL についていろいろと聞くことができたことは大変有意義だった。
なので、MySQL のこれからについて質疑応答で回答をもらった5つのことを共有したい。(斜体は私のコメントである)
質疑のまとめ(5点)
1. MySQL は、これからも OSS
- MySQLはOracleにとって重要な存在。
- MySQLはこれからもOSS
→ 現状はこれが公式の見解。
ここは継続注視していきたいところ。
個人的には MySQL から fork したプロダクト(MariaDB, Drizzle, etc...)を推していきたいと思っている。
2. MySQL5.5 の次のバージョンは?
- MySQL バージョンいくつが GA になるのか?、それについては、梶山氏たちも分からないとのことw
- 5.6 が進行中ではある。
→ リリースモデルがもっと分かりやすいとありがたいのだが…
3. NoSQLとの距離感
- 基本的に立ち位置(OLTP向けをメイン)を変えないでやっていくつもり。
- NoSQL とは Case By Case での使い分け、もしくは MySQL との組み合わせで使用できるものだとの考え。
→ 現状、一般的な見解。
4. IPv6対応
- 準備はしている、実装時期は未定。
→ ここは、プライオリティがあがることを期待している。。
5. Slave の Auto Promotion および マルチスレッド化
- いずれも開発リストにはあるとのこと。
→ 自己実装しなくても、本実装で存在していると一番うれしいと思っている機能。。
以降は、私がとった梶山氏に伺った話のメモ。
Oracle 社におけるオープンソースとMySQL最新情報
- ロードマップは変更になる可能性もある。
→変更があった場合はご容赦を。
MySQLとは?
- MySQL、世界で最も普及しているOSSデータベース
- 日本でどうなのか?
- 2009年、MySQLがPostgreSQLを抜いた ( ITmediaリサーチインタラクティブ第6回調査:DBMSより)
コミュニティ版と商用版
- →DB機能はコミュニティ版にも全部はいっている
- MySQLServer導入事例
- facebook
- 数千台のMySQLServer運用中
- 分散キャッシュmemcachedとの組み合わせ
- 1300万クエリ/sec
- 参照3700万行
- 更新350万行
- 440万IOPS
- DRを非同期のレプリケーションで実装している
- facebook
プラガブルストレージエンジン
- →テーブルごとに機能変更可能なMySQLだけの機能
- →Forkしたプロダクトにはもちろんあるが
- →様々なエンジンが、よくでてくるものだけでも20種類ほど
OSS&企業としての開発と管理
- →すべてを知るエンジニアによる責任をもったサポート
- →開発はOracle社が行っている、知的財産の管理もOracle
- →成果物としてのSourceコードを公開しているのがMySQLのスタンス
- →最近は騒がしかった。MySQLABが行っていた当初、それをSunによる買収、OracleによるSunの買収。
Oracleの10の約束
- 3番目、OracleはMySQLにたいしての投資を継続する
Oracle & Open
- オープンスタンダードへの貢献
- →XMLウェブサービス、Java
OracleのOSSへの貢献
- Sunで貢献してきたもの以外にも幅を広げる
- apacheプロジェクト、eclipse etc...
- Oracle Enterprise Linux
Complete, Open, Integrated.
- Complete とはあらゆるレベルで大多数のお客様の要件にあったソリューションの提供
- App, Middle ware, Database, OS, Virtual Mashine, Servers, Storage....
MySQL Storategy
- Investment in MySQL
- Make MySQL a better MySQL
- Open Source Database for Web Application
- Most Complete LAMP stack
- telecom & enbedded
Develop, Promote and Support MySQL
- Improve engineering, consulting and support
- 開発者も増えている
ビッグネームが抜けたことも事実だがそれを補ってあまりあるタレントがいる、と。
MySQL Community
- GPL は継続する
MySQLとのDB互換
- Oracle Golden Gate →米で導入した会社あり。チケット販売会社
- Oracle Enterprise Manager との互換
MySQL最新情報
- MySQL5.5
- InnoDBがデフォルトのストレージエンジン
- 従来のビルトインInnoDBではない→従来のInnoDB Plugin
- ユーザーオプションの向上
- Performance Schema
- SIGNAL/RESIGNAL
- 性能向上
- 並列処理性能の向上のために
- mutex lock を可能なかぎり削減している
- ロールバックセグメントの複数化
- sysbenchのベンチマーク結果のShare
- コア数を増やしたときに性能を享受できていなかったが、48コアまではスケールすることを確認した(内部で行ったベンチマーク)→グラフ
- MySQL5.1 はビルトインのもの
- クラッシュリカバリの性能改善
- 5.1 InnoDB Plugin と 5.5 InnoDB (InnoDB Plugin) は同一のものではない。
ブランチがわかれている。
- 5.1 InnoDB Plugin と 5.5 InnoDB (InnoDB Plugin) は同一のものではない。
- OracleがInnoDBを所有していたことによるSynergy
- Oracleが影でMySQLに貢献し続けた時期(2005~OracleのSun買収まで)
- MySQLチームのモチベーションは上がっている
- MySQL、6割くらいのユーザーがWindows
- 開発陣営はあまりWindowsはあまり詳しくなかった
- Windows 上の性能向上
- MySQLのレプリケーションの話
- 非同期レプリケーション
- SBR、RBR
- 改善点
- スレーブに変更点を転送してからアプリケーションに応答を返す
- スレーブでのfsync改良
- レプリケーションハートビート
- サーバ毎のレプリケーションフィルタリング
- ログを個別にフラッシュ→FLUSH LOGS実行時にログを選択してフラッシュ可能に
- トランザクション非対応に関係なく安全にログに記録。InnoDB、MyISAMのテーブルを同一のトランザクション内で更新した場合、コミット後に全変更点をログに追記するように変更
- Semi-sync Replication
- Relayログにまで書かれたらMasterのCommitを完了する
- Semi-sync Replication のPROS/CONS
- PROS
- スレーブでのデータの信頼性の向上
- CONS
- データ伝送量が増える
- App への応答性能も落ちる?
- PROS
ロードマップ
- Improved Performance/Scalability
- Optimize Sub Query
- Batched fetch of data from storage engine
- Focus on Windows specific optimizations
- Improved Security
- External authentication, LDAP etc.
- Auditing capture and policy administration
- Improved Availability
- Online operation (Alter table, indexes)
- Improved Ease of Use.
- MySQL scripts and Utilities
- Management/Monitoring Tools, Universal Installer
- Integration with Oracle products
- MW/BI, OEM, Secure Backup, Audit Vault, Golden Gate.
- InnoDBの改善点
- 5.5 に間に合わなかったもの
- SSDに対する最適化 etc...
- show innodb status をよりわかりやすくするための管理テーブル
- InnoDB でもMyISAMと同様にファイルコピーでの移行を可能にする改善
- レプリケーション
- スレーブのマルチスレッド化
- GIS実装
その他の製品群
- MySQL Workbench
- 引き続きGPLで。
- PythonもしくはLuerで機能拡張できる。
MySQL Cluster
- 管理の向上
- メタ情報の管理
- リアルタイムな統計
- Java アプリケーションからの性能向上
MySQL Enterpriseについて
- サーバ、モニタリング、サポート
- 商用版のみでEnterprise Backup、旧InnoDB Hot Backup
MySQL Enterprise Monitor
- 有償板を使うメリット
- 障害が起こる前、事前通知
- MEMサーバを中心にそえて各MySQL Serverを監視する
- Query Analyzer→Javaと.NET
- MySQL Clusterの監視ができるようになったというのがVer2.3の一番大きな改善点
- MySQL Enterprise Monitorのデモ。
- 監視項目の追加も可能。デフォルトでも100を超える監視項目を準備。
- メッセージもカスタマイズ可能。
- メッセージの通知は、メール、SNMPトラップで監視ツールへとばす
- Query Brawzer
質疑応答
Semi Sync Replication 時のマスター側のベンチマーク
- 現状、とったものはない。
- ベンチマークをどうとるとよいのかと決めきれていないとのこと。