OSSデータベース取り取り時報

第19回MySQLグループレプリケーションの性能、PostgreSQL9.6.2リリース、Apache Cassandra 3.10をリリース

MySQLはGUIツールのMySQL Workbench 6.3.9がリリースされました。PostgreSQLはPostgreSQL9.6.2がリリースされました。Apache Cassandraは3.10がリリースされました。

[MySQL]2017年2月の主な出来事

2017年2月18日にMySQL Workbench 6.3.9がリリースされました。MySQL WorkbenchはMySQLのGUIツールで、SQLの開発やチューニングの支援、データベース管理、ER図作成機能、データベースマイグレーション機能が統合されています。最新のマイナーバージョンではGUIのデザインが大きく変更されています。またMySQL 8.0の多くの機能に対応し、JSONデータ型の値の確認や変更が可能なエディタの機能強化も行われています。

また2月23日にはMySQL Connector/Net 6.10.1ベータ版がリリースされました。Connector/Net 6.10は.NetのEntity Framework Core 1.1のサポートするために開発が進められています。別途開発中の7.0ではX DevAPIのサポートが重要な変更点となります。

MySQLグループレプリケーションのアービトレーションのサンプルプログラム

本連載第13回でご紹介したグループレプリケーションは、2016年12月にリリースされたMySQL 5.7.17にてGA(製品版)となりました。引き続き機能強化が進められていますが、製品の開発管理を担当するプロダクトマネージャーのMatt Lordが、グループレプリケーション環境にてネットワーク分断が起こった場合のアービトレーション(調停)を行うためのサンプルプログラムをGitHub上にて公開しています。

MySQLグループレプリケーションの性能とアーキテクチャ

MySQL 5.7.17のリリース後、MySQL開発チームのブログおよびグループレプリケーション環境に対応したプロキシソフトウェアのProxySQLのブログにてグループレプリケーションの性能検証が公開されています。グループレプリケーションは耐障害性を持たせた全ノードアクティブなマルチマスター型のレプリケーションですが、全てのノードで同じデータを持ち、かつコミットのタイミングで全てのノードの合意を取る使用のため、台数を増やしてもスループットは増加せずに逆に漸減していることが確認されています。

図1 グループレプリケーションの参照更新処理性能

図1 グループレプリケーションの参照更新処理性能
出典:ブログMySQL High Availability mysqlhighavailability.com

グループレプリケーションでのコミット時のノード間の合意形成のため、PaxosアルゴリズムをベースとしたXCOMを実装しています。MySQL開発チームのブログにてこのXCOMの仕様について解説しています。

FOSDEM 2017でのMySQL関連プレゼンテーション

2月4, 5日にベルギーで開催されたオープンソース開発者が集うイベントFOSDEM 2017では、イベント開催に合わせてプレイベントとしてMySQL Dayが開催され、次期メジャーバージョンMySQL 8.0の新機能に関する複数のプレゼンテーションが公開されています。

[PostgreSQL]2017年2月の主な出来事

2017年2月9日にPostgreSQL 9.6.2がリリースされました。このリリースでは、これまでに累積されたバグの修正が行われており、データベースのダンプ・リストアを行うことなく適応できます。このマイナー・バージョンアップは各メジャー・バージョンに対して実施されており、それぞれ9.6.2, 9.5.6, 9.4.11, 9.3.16および 9.2.20がリリースされています。

今回のマイナー・バージョンアップで対処されたインデックス破損問題と復旧方法について

今回のマイナー・バージョンアップで修正されたバグの中にはインデックスの破損を引き起こすものがありました。

この不具合は

  • インデックス作成時にCONCURRENTLYオプションを使用した場合
  • 当該カラムに対する新規インデックスの場合
  • インデックス作成中に当該行に更新があった場合

が成立する場合に誤ったインデックスが作成されることがあるというものです。これにより、検索時のオプティマイザの判断次第で、本来ヒットするはずの行が見つからないことや誤った行がヒットすることがあります。

お使いの環境で、すでにインデックスが破損している場合、アップデート後に、インデックスを再作成する作業が必要となります。直ちにDBサーバが停止するような問題ではありませんが、破損状態のまま運用を継続するといろいろと不都合が生ずると思われますので、ご注意ください。

先月のPostgreSQL関連イベントやセミナー、ユーザ会の活動のレポート

第19回中国地方DB勉強会in米子
2017年2月18日に米子コンベンションセンターにて第19回中国地方DB勉強会in米子が開催されました。OSSDBだけにこだわらず、SQL Server , Amazon Athenaの紹介やPHP×DB、IoT×DB、ロックについての深堀など幅広いテーマによる勉強会が開催されました。資料はWebに公開されているので興味のある方はご活用ください。

[Cassandra]2017年2月の主な出来事

Apache Cassandraの最新版3.10が2017年2月3日にリリースされました。また、バグ修正や改善などを反映した2.1.17、2.2.9、3.0.11が2月22日にリリースされました。バージョン3.10で追加された新機能のうち、本連載第16回で紹介した新機能以外の重要な新機能としては、ノード再起動時にプリペアドステートメントを事前ロードできるようにする永続化機能プリペアドステートメント内の未セットのJSONフィールドをNULLではなく未セットと解釈させる拡張などがあります。バージョン2.2.9、3.0.11での主な変更点としては、ディスク容量不足によってコンパクションができないSSTableを処理保留とせずに処理対象から除外するようになったこと、JavaとJavaScript以外のユーザ定義関数(UDF)が2.2.9から非推奨となり、3.0.11で廃止されたことなどがあります。3.0.11独自の主な変更点としては、定義済みのテーブルのユーザ定義型の型変更が禁止になったことなどがあります。

Cassandraのリリース情報(2017年2月25日最新情報)

Cassandra version 3.102017年2月3日リリース
Cassandra version 3.0.112017年2月22日リリース
Cassandra version 2.2.92017年2月22日リリース
Cassandra version 2.1.172017年2月22日リリース

Apache Software Foundation のダウンロードページに Debian パッケージの取得とインストールの方法が記載されています。また、過去のバージョンを含め、tar ボール形式のものは同ページからリンクされているアーカイブからダウンロードできます。

Cassandraのドライバーリリース情報(2017年2月25日最新情報)

Java Driver 3.1.4Cassandra 3.x対応2017年2月14日リリース
C# /.NET Driver v3.2.1Cassandra 3.x対応2017年2月15日リリース
Ruby Driver v3.1.0Cassandra 2.2、3.x対応、JRuby 1.7をサポート2016年11月14日リリース
C/C++ Driver v2.5.0Cassandra 3.x対応2016年10月20日リリース
PHP Driver v1.2.2Cassandra 3.0対応2016年8月8日リリース
Python Driver v3.8.0Cassandra 3.0対応、Python 2.6、2.7、3.3、3.4をサポート2017年2月22日リリース
Node.js Driver v3.2.0Cassandra 3.0対応2017年1月17日リリース
Spark Cassandra Connector Release 1.6.5Cassandra 3.0対応、Spark 1.6.1対応2017年1月17日リリース

2017年3月開催予定のセミナーやイベント、ユーザ会の活動

オープンソースカンファレンス 2017 Tokyo/Spring

日程2017年3月10日(金⁠⁠~11日(土)開催予定
場所明星大学 東京都日野市程久保2-1-1
内容オープンソースのコミュニティや協賛企業、後援団体によるオープンソース関連のセミナーや展示などをお楽しみいただけます。日本MySQLユーザ会による講演とブース展示、JPUG, PGEConsによるPostgreSQLに関する講演とブース展示が予定されています。
主催オープンソースカンファレンス実行委員会

おすすめ記事

記事・ニュース一覧