検索
連載

現実味を帯びてきた「Database as a Service」/MySQLDatabase Watch(2013年11月版)(2/2 ページ)

今月はOracleが掲げるDBaaSとExadataのインメモリデータベース技術、加えてMySQLのラボにて開発中の新機能について紹介します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

MySQL 5.7に含まれる(かもしれない)気になる新機能

 次はMySQLです。Oracle OpenWorldとほぼ同時期にMySQL Connectというイベントも開催されました。日本では10月25日にオラクルがMySQL User Forumを開催し、最新動向および将来の新機能について、日本オラクル MySQLセールスコンサルティングマネージャ 梶山隆輔氏が解説しました。当日の資料はこちらで公開されています。


梶山氏

 現状のGAは、MySQL 5.6で、5.7に向けた開発が進んでいます。最新のDMR(Developmemt Milestone Release)となる5.7.2では新機能が既に「てんこ盛り」になっているとか。DMRはおおざっぱにいうとベータ版ではあるものの、リリース候補版(RC)の品質になった機能でないと盛り込まれないものなのだそうです。

 現状ではMySQL 5.7.2 DMRには、処理性能と可用性で改善が進んだInnoDB、拡張性と可用性が向上したレプリケーション、他にも改良が加えられたパフォーマンススキーマやオプティマイザが実装されています。

ラボで開発中の気になる機能4つ

 今回はラボ(リンク)で開発中の機能も見ていきましょう。ラボなのでまだ完成度は高くありません。「本番環境では決して使わないように」と断りがあるものの、誰でも使えるように公開されているのは早い段階から評価してもらうためです。そもそも必要な機能なのかという問題提起も含まれています。こういうところはオープンソースらしいですね。

 ラボで気になる機能は4つ。Hadoop Applier for MySQL、MySQL JSON UDF、MySQL Multi-source Replication、MySQL UtilitiesのFabricです。

 最初のHadoop Applier for MySQLはHadoopをMySQLレプリケーションのスレーブのように扱えるようにするためのものです。InnoDBやMyISAMなどのストレージエンジンとしてではありません。「そもそも必要か」というところから評価しているところであり、現状ではHadoop環境へはインサートしかできません。今後「必要だ」という声が高まれば、更新や削除も可能になるかもしれません。

 MySQL JSON UDFはMySQLにJSONを扱うための関数を追加できるようにするプラグインのようなイメージです。セットアップすると、「CREATE FUNCTION」コマンドでUDF(ユーザー定義関数)を作成できます。MySQLでJSONがより使いやすくなれば、MySQLをドキュメントデータベース的に扱える可能性が広がりそうです。

 残りの2つはMulti Thread Slaveと組み合わせるレプリケーションに関する機能で、3つが相互に関係しています。Multi Thread SlaveというのはMySQL 5.6に実装された改善項目です。実はMySQL 5.5までのレプリケーションのスレーブはシングルスレッドだったので、性能はスレーブに依存していました。MySQL 5.6からはスレーブがマルチスレッドになり、レプリケーションの性能がアップしたということです。こちらはMySQL 5.6でひとまず完成。

 これから実現するのが残りの2つ。MySQL Multi-source Replicationというのは、複数のデータソースからレプリケーションをするための機能です。レプリケーションを使い、データを集約させるための機能といえるかもしれません。こちらはMySQL 5.7への実装を目指しています。なお、先月紹介したMariaDB 10.xで搭載される機能に同名のものがありますが、オラクルによると「同じものではない」そうです。同時並行で類似の機能開発が進んでいるようです。

 それからMySQL UtilitiesのFabric。こちらはMySQL本体ではなくMySQL Utilitiesの新機能の1つで、シャーディングを管理するための機能です。リリース時期は不明。現状ではPHP、Python、Javaで利用可能です。特徴はMySQL 5.6から利用可能となったGTID(Global Transaction ID)が必須となるところです。言い換えるとGTIDが作られたから実現できるようになった機能とも言えます。

 GTIDというのはトランザクションにIDを振ることにより、レプリケーションの進行管理をしやすくするためのものです。逆に言うとGTIDのないときはどこまで複製したのか管理するのが複雑でした。例えばMySQLの高可用性ツールとなるMHAはGTIDがないときに開発されたものなので、GTIDがあればもう少し楽だったかもしれません。なおMySQLとMariaDBはともにGTIDがありますが、IDを割り振る仕様は同じではありません。

 最後にMySQL User Forum会場の様子を(写真)。入口やお茶スペースにはマスコットのイルカがぷかぷかと浮かんでいます。お茶と“おやつスペース”があると、どこか居心地がいいですね。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る