2012年2月10日

[MySQL][Spider][VP]Spider-2.28 VP-0.17リリース

Spiderストレージエンジンのバージョン 2.28(beta)とVartical Partitioningのバージョン 0.17(beta)をリリースしました。
Spiderストレージエンジンは、database sharding用のストレージエンジンです。
http://spiderformysql.com/
Vertical Partitioningストレージエンジンは、テーブルのVertical Partitioning用のストレージエンジンです。
http://launchpad.net/vpformysql

バイナリのダウンロードにはこちらをご利用ください。
http://spiderformysql.com/download_spider.html

今回の主な変更は以下です。
Spider
・パラレル検索に対応しました。(「spider_bgs_mode > 0」の場合)
 Spiderバンドル版MySQL、テーブルパーティショニングを利用したテーブルで、
 各パーティションのパラレル検索を行うようになりました。
 ただし、各パーティションを順次検索し、limitで件数を制限するような、
 全パーティションを検索対象としないケースではパラレル検索は行いません。
・サーバパラメータに「spider_use_default_database」「spider_remote_default_database」を追加しました。
 データノードでbinlog-do-dbなどのレプリケーション用パラメータが使えない問題があり、追加されたパラメータです。
 「spider_use_default_database=0」に設定すると以前のバージョンと同じ動作となります。
・テーブルパラメータに「access_balance」を追加しました。
 Spiderの冗長化機能を利用している際に、参照系のロードバランス時の重みづけを設定するためのパラメータです。
・INFORMATION SCHEMA「spider_alloc_mem」を追加しました。
 このプラグインをインストールすると、Spiderのおおよその使用メモリ量を「information_schema.spider_alloc_mem」テーブルで確認することができるようになります。なお、このテーブルの「alloc_mem_count」と「free_mem_count」は、メモリの増加と減少の回数を表しており、最終的に同じ数になるとは限りませんのでご注意ください。
・テーブルパラメータ「quick_mode」、サーバパラメータ「spider_quick_mode」に選択肢3を追加しました。
 「quick_mode=3」はselectする際に、内部的な検索結果を一時的にテンポラリテーブルに格納するモードで、巨大なテーブルを検索する際に威力を発揮します。

注意点
・このバージョンからSpiderの管理テーブルが変更されて、プラグインも追加となっておりますので、install_spider.sqlを実行し管理テーブルの更新をお願いいたします。

Vertical Partitioning
・UDFパラメータに「suppress_autoinc」が追加されました。
・テーブルパラメータに「allow_bulk_autoinc」「allow_different_column_type」を追加しました。
・サーバパラメータに「vp_allow_bulk_autoinc」を追加しました。

handlersocket
バージョン1.1になりました。
・サーバパラメータに「handlersocket_slow_log」「handlersocket_long_exec_time」「handlersocket_close_table_interval」を追加しました。
 「handlersocket_slow_log」は、「slow_query_log=on」の際に、handlersocketの遅い(「handlersocket_long_exec_time」マイクロ秒)リクエストを合わせて出力することができます。
 「handlersocket_close_table_interval」は、handlersocket内部で一定周期でテーブルをクローズするためのパラメータで、alter tableなどを実行できるようにmeta data lockを開放するために利用します。通常は「handlersocket_close_table_interval=0」(クローズしない)に設定し、alter tableなどを実行する時だけ設定変更を行うような運用も可能です。
 これらパラメータはグローバルパラメータで、SQLインターフェースから動的に変更することが可能です。

それ以外の変更については、ダウンロードドキュメント中の「99_change_logs.txt」をご確認下さい。

市川さん、岡田さん、朴さん、Adrianさん、leechangyeolさん、liuyanhongさん、久積さん、新谷さん、加藤さん、バグレポートありがとうございます。
樋口さん、アドバイスありがとうございます。


--- 2/17 追記 ---
パラレル検索のロジックに問題があり、検索結果が取得できないことがあったためソースおよびバイナリを差し替えました。申し訳ありません。
差し替え版ではhandlersocketに以下のパラメータが追加になっています。
・サーバパラメータに「handlersocket_get_lock」を追加しました。
 このパラメータはhandlersocketでの更新処理時に、get_lockを行わないようにするためのものです。「handlersocket_get_lock=off」は、handlersocket経由でSpiderを利用する場合など、「handlersocket_threads_wr」を増やす際に役に立ちます。