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

第13回 MySQLグループレプリケーションのご紹介,PostgreSQLセキュリティ問題修正,PostgreSQL9.6Beta3, Beta4リリースのご紹介,Apache Cassandraバージョン3.8のリリース内容が確定

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

MySQLはグループレプリケーション機能のベータリリースやツール類のマイナーバージョンアップがありました。このグループレプリケーションのアーキテクチャを解説します。PostgreSQLは2点のセキュリティ問題の修正がありました。また,次期メジャーリリースの9.6に向けたBea3,Beta4がリリースされました。Apache Cassandraは遅れていたバージョン3.8のリリース内容が確定しました。

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

7月30日にMySQL 5.55.65.7のバグフィックスを中心としたマイナーバージョンがそれぞれリリースされています。

マルチマスター型のレプリケーション機能であるグループレプリケーションのベータ版がリリースされました。このほかツールとして,レプリケーション構成時のフェールオーバーを可能とするツールなどDevOpsを支援するユーティリティ群のMySQL Utilities 1.6.4がリリースされています。またWindowsのタスクトレイに常駐し,MySQLサーバの起動停止や状態管理を行う小さなツールMySQL Notifier が1.1.7にマイナーバージョンアップしています。

商用版の監視ツールMySQL Enterprise Monitor 3.0.27およびオンラインバックアップツールMySQL Enterprise Backup 4.0.3もあわせて新しいマイナーバージョンがリリースされています。MySQL Enterprise Monitorについては利用しているOpenSSLのライブラリもあわせてバージョンアップしておりますので,お手元の環境のバージョンアップをご検討ください。

MySQLのグループレプリケーション機能のご紹介

MySQLでは各種のレプリケーション構成をとることができます。MySQLには2000年にレプリケーション機能が導入され,1:1型や1:n型が広く利用されてきました。MySQL 5.7では,データの集約や分析に役立つ,複数のマスターから1台のスレーブにデータを集約するためのマルチソース型が追加されました。

画像

グループレプリケーションはすべてのノードがマスターとして動作する構成となります。どのノードに書き込んだ内容でも相互に更新されていきます。MySQLのグループレプリケーションはMySQL 5.7に対するプラグインの形で開発が進められており,2016年8月末時点ではベータ版となっています。

MySQLのグループレプリケーションは以下の特徴を持っています。

  • 分散型の高可用性構成を構築可能
  • 障害が発生したノードを検知して自動的に切り離し
  • ノードの動的な追加削除が可能

グループレプリケーションは分散コンピューティングのState Machineのコンセプトをベースとしています。ノード間の通信にはPaxosアルゴリズムを用いたグループコミュニケーション(コードネーム:XCom)を実装し,各ノードで行われた変更は順番にブロードキャストされるようになっています。

トランザクションを処理するフローは以下の通りとなっています。

  1. データの変更処理は各ノードのローカルで実行
  2. コミットの命令が届いた段階で各ノードに実行確認のメッセージをブロードキャスト
  3. 各ノードでメッセージに含まれる変更対象の行とバージョンを確認
  4. 各ノードの行のバージョンと矛盾が無いことが確認できたらそれぞれでコミット
  5. 変更対象の行が別のトランザクションで変更されバージョンが異なっている場合はロールバック

どのノードで実行されたトランザクションでも,ノード間でのデータの不整合が起こらない仕組みとなっています。

MySQLのグループレプリケーションは,共有ストレージを使わずに拡張可能なマルチマスター型レプリケーション構成を構築できるため,データベースへのアクセスが増減する環境でのバックエンドやクラウドインフラでの利用が期待されています。

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

MySQL 5.7入門セミナーシリーズ in 徳島
徳島県,とくしまOSS普及協議会と日本オラクルの共催で,徳島県のIT事業者を対象にMySQLの基礎を学べるセミナーを実施中です。順次全国展開を進めているセミナーシリーズが徳島で開催されています。1回2テーマずつ,全3回開催でMySQLを体系的に学習する機会となっています。資料はMySQLのイベントページに掲載される予定です。
MySQL 5.7新機能紹介(日本語全文検索&GIS)
MySQL 5.7で追加された日本語全文検索機能と,MySQL 5.7で再実装されたGIS(地理情報システム)についてご紹介させて頂きます。特にMySQL 5.7のGISに関してはこれまで日本語での情報発信が限られており,セミナーとしては初めての開催となりました。

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

PostgreSQLは2016年8月11日にアップデートが実施され,バージョンはそれぞれ9.5.4,9.4.9,9.3.14, 9.2.18,9.1.23となりました。今回のアップデートでは,以下の2つのセキュリティ問題を含む多くのバグ修正が行われています。

CVE-2016-5423特定のCASE/WHENを含むSQLにより,PostgreSQLサーバのクラッシュやメモリ情報の漏えい,任意のコードの実行などの被害を発生させてしまう脆弱性です。
参考:Bug 1364001 - (CVE-2016-5423) CVE-2016-5423 postgresql: CASE/WHEN with inlining can cause untrusted pointer dereference
CVE-2016-5424データベース名やロール名に特定の文字列が含まれていると,一部のクライアントプログラムが誤動作しスーパーユーザに権限昇格できてしまう脆弱性です。
  • 特定の文字:改行,キャリッジリターン,ダブルクオート,バックスラッシュ
  • 脆弱性のあるプログラム:pg_dumpall, pg_upgrade, vacuumdb, reindexdb, clusterdb
参考:Bug 1364002 - (CVE-2016-5424) CVE-2016-5424 postgresql: privilege escalation via crafted database and role names

次期メジャーバージョンのリリースに向けては,7月21日に9.6 beta3が,8月11日に 9.6 beta4が相次いでリリースされました。いずれも,ベータテスト期間中に新たに発見された多くのバグ修正が行われており,9.6 beta4については,前述のセキュリティ問題への対応も行われています。

PostgreSQL9.6の機能的な改良点などについては第12回の紹介記事をご覧ください。

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

オープンソースカンファレンス2016 Kyoto
2016年7月29日(金)~30日(土)京都リサーチパークで,オープンソースカンファレンス2016 Kyotoが開催されました。1日目に開催されたセミナーにおいて,PostgreSQL エンタープライズ・コンソーシアム 稲葉香理様による「PostgreSQL はエンタープライズで使えるのか? PGECons の取り組みと,PostgreSQL活用事例のご紹介」の講演が行われました。

著者プロフィール

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

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普及やビジネスの拡大をミッションとする。

コメント

コメントの記入