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

第15回 MySQL Cluster 7.5リリース,PostgreSQL9.6リリース,Apache CassandraはCassandra Summitの開催とバージョン3.8,3.9リリース

この記事を読むのに必要な時間:およそ 4 分

MySQLは分散型データベースクラスタであるMySQL Cluster 7.5がリリースされました。PostgreSQLはPostgreSQL9.6がリリースされました。9.6版で強化されたポイントのひとつであるレプリケーション機能について解説します。Apache Cassandraは,バージョン3.8と3.9が同時リリースされました。

[MySQL]2016年10月の主な出来事

この連載の第8回でご紹介したMySQL Cluster 7.5がリリースされました。MySQL Clusterは共有ディスクを必要としない分散型のRDBMSクラスタです。またC++やNode.jsなど向けの複数のNoSQLインターフェースを持ち,RDBMSとNoSQLのハイブリッド型データストアとしてもご利用いただけます。

最新のMySQL Cluster 7.5では,SQLを処理するレイヤーがMySQL 5.7ベースとなり,JSONデータ型や強化されたセキュリティ機能などが利用できます。データを格納するndbclusterストレージエンジンレベルでも改良が行われ,参照処理性能向上のための全データノードへのデータ書き込みが可能に,インデックススキャンやレンジスキャンが性能向上しています。さらに設定やデータディクショナリのメタデータの確認も手順が簡素化されています。

さらに第9回でご紹介したMySQL Document StoreのXプラグインも同梱されており,以下の機能を兼ね備えたハイブリッド型データストアとしての機能がさらに強化されていきます。

  • 共有ディスク不要の分散型&全ノードアクティブ型RDBMSクラスタ
  • トランザクション対応memcached API準拠キーバリューストア
  • Node.js対応NoSQLデータストア
  • CRUD API対応ドキュメントデータベース
  • 別のデータセンターに配置されたクラスタ間での双方向の非同期レプリケーション
  • NoSQLデータストアとRDBMSクラスタ間での双方向レプリケーション

MySQL Cluster 7.5以外にも,MySQL Cluster 7.2, 7.3, 7.4およびMySQL Server 5.5, 5.6, 5.7,MySQL Workbench 6.3MySQL Enterprise Monitor 3.1, 3.2, 3.3の各マイナーバージョンアップが行われています。またMySQL Document StoreのX Dev APIをサポートしたConnectorも,Java, C++, node.jsとそれぞれアップデートされています。

MySQL Cluster 7.5の参照性能向上の改良点

MySQL Clusterのデータノードでは,テーブルの主キー(または主キーの一部,ユニークキー)によるハッシュパーティショニングよって分割したデータを各ノードに分散し,かつ多重化を行っています。図1はデータノードが4台,データの多重化は2台の場合の模式図です。なおデータの多重化は,MySQL Cluster 7.5から4台1グループとする設定がサポートされるようになりました。

図1 MySQL Clusterのデータノードでのデータ管理

図1 MySQL Clusterのデータノードでのデータ管理

MySQL Cluster 7.5のデフォルトの挙動やMySQL Cluster 7.4以前は,参照時はプライマリのデータノードにアクセスします。データ1をプライマリとして管理するデータノードがデータノード1の場合は,データ1に対する参照の処理はデータノード1にアクセスします。データ1とデータ3にアクセスする場合,データノード1上に全てのデータがあるにもかかわらず,データ3のプライマリではないため,別途データノード3にアクセスします。

MySQL Cluster 7.5からは,このオーバーヘッドを削減するため,MySQL Clusterのndb_read_backupオプションを有効にして全てのテーブルを,もしくはテーブル定義のNDB_TABLEの項目にREAD_BACKUP=1を設定して特定のテーブルのデータはプライマリではないデータノードからも読み込むことができるようになりました。

さらに参照の多いテーブルは,全てのデータノードに複製する構成も可能となっています。上記のREAD_BACKUPと同様に,全てのテーブル特定のテーブルかのいずれかを全てのデータノードに複製可能となります。全てのデータノードに複製を行うため更新処理のオーバーヘッドは大きくなりますが,JOIN処理や参照処理が非常に多く行われるテーブルで活用することで性能向上が期待できます。

図2 MySQL Cluster 7.5の"Fully replicated"構成

図2 MySQL Cluster 7.5

[PostgreSQL]2016年10月の主な出来事

2016年9月29日にPostgreSQL 9.6.0がリリースされました。このリリースでは,パラレルクエリとストリーミングレプリケーション機能の拡張,全文検索におけるフレーズ検索,ざまざまな点でのパフォーマンス改善,ユーザビリティ強化などが行われております。 次のメジャーリリースはPostgreSQL9.7ではなく,PostgreSQL 10とアナウンスされております。何がどう変わるかなどの詳細はまだ公表されておりませんが,リリース時期は2017年第3四半期を予定していることがアナウンスされています。

PostgreSQL9.6のレプリケーションについて

ストリーミングレプリケーション機能とはマスタサーバでの更新時にトランザクションログ(WAL)をスレーブサーバに転送することでレプリケーションを実現する機能です。PostgreSQL9.0から利用できましたが,PostgreSQL9.6では以下の改良により,利用の幅が広がっています。

複数の同期スタンバイに対応
PostgreSQL9.5までは同期レプリケーションの対象は1台のみでしたが,PostgreSQL9.6からは複数台を指定できるようになりました。
remote_applyモード
PostgreSQL9.5まではマスタサーバへの書き込み結果がスレーブサーバに反映されるまでに若干のタイムラグがあり,マスタサーバへの書き込み直後にスレーブサーバへ問い合わせた場合,結果が反映されていないことがありました。PostgreSQL9.6から追加されたremote_applyモードはこの同期を保証します。

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

オープンソースカンファレンス2016 Nagaoka
2016年10月1日(土)まちなかキャンパス長岡で,オープンソースカンファレンス2016 Nagaokaが開催されました。開催されたセミナーにおいて,日本PostgreSQLユーザ会 新潟支部 澤田 雅彦様による「パラレルクエリがついに来た!PostgreSQL 9.6新機能をトコトン解説!」の講演が行われました。

著者プロフィール

山本文彦(やまもとふみひこ)

TIS株式会社

アプリ兼インフラエンジニアとしてさまざまなECサイトの開発現場を担当後,現在はOSSサポートサービスにおいて技術コンサルティングや保守サポートに従事。PostgreSQLだけでなく,MySQL, OracleなどのRDB,Amazon DynamoDBといったNoSQLなどさまざまなDB製品の利用経験を活かして,OSS製品の普及活動に力を注いでいる。


木本吉信(きもとよしのぶ)

DataStax Inc.

OSからデータベース,各種アプリケーションの国内導入やローカライズにかかわる仕事を株式会社創夢,イデアコラボレーションズ株式会社,Japan Leadershipで,学生時代から現在に至るまで30年に渡り行う。業務として,また業務の傍ら,マニュアルや書籍,記事の翻訳や監訳・執筆なども行う。


梶山隆輔

MySQL Sales Consulting Senior Manager。

日本オラクル(株)において,MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なMySQL部門にて,オーストラリア,インド,台湾などに在籍するチームメンバーを束ね,アジア太平洋地域の25以上の国や地域でのMySQL普及やビジネスの拡大をミッションとする。

バックナンバー

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

バックナンバー一覧

コメント

コメントの記入