[groonga-dev,03192] [ANN] Mroonga 5.02

Back to archive index

HAYASHI Kentaro hayas****@clear*****
2015年 4月 29日 (水) 14:53:19 JST


今日は肉の日(4/29)ですね。Mroonga 5.02をリリースしました!

  http://mroonga.org/ja/docs/news.html#release-5-02

ドキュメント:
  http://mroonga.org/ja/docs/
インストールガイド:
  http://mroonga.org/ja/docs/install.html
アップグレード方法:
  http://mroonga.org/ja/docs/upgrade.html

今回のリリースのハイライトは以下のとおりです。

* Debian 8.0 (Jessie)とUbuntu 15.04 (Vivid Vervet)のサポート
* 範囲検索でレコード数を見積る際のパフォーマンスを改善

## Debian 8.0 (Jessie)とUbuntu 15.04のサポート

4/25にリリースされたばかりのDebian 8.0 (Jessie)と4/23にリリースされた
Ubuntu 15.04 (Vivid Vervet)に対応しました。

インストール手順については次のURLを参照してください。

Debian 8.0 (Jessie)の場合

  http://mroonga.org/ja/docs/install/debian.html#jessie

Ubuntu 15.04 (Vivid Vervet)の場合

  http://mroonga.org/ja/docs/install/ubuntu.html

mroonga.orgで案内しているMroongaのパッケージはMySQL向けになっています
が、Debian 8.0 (Jessie)とUbutnu 15.04ではMariaDBの10.0.xがディストリ
ビューションの公式パッケージとしてインストールできます。

* Debian 8.0ではMariaDB 10.0.16をインストール可能
* Ubuntu 15.04ではMariaDB 10.0.17をインストール可能

MariaDB 10.0.xではMroongaのプラグインがバンドルされているので、MariaDB
をインストール後に、プラグインを有効にすればすぐに使えるようになります。
(バンドルされたMroongaはちょっと古いバージョンなので、最新のMroongaを使いたいなら
mroonga.orgで案内しているパッケージを使ってください)

プラグインのインストールには次のSQLを実行します。

  INSTALL PLUGIN Mroonga SONAME 'ha_mroonga.so';
  CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so';
  CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';
  CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';
  CREATE FUNCTION mroonga_escape RETURNS STRING SONAME 'ha_mroonga.so';

## 範囲検索でレコード数を見積る際のパフォーマンスを改善

今回のリリースでは、統計情報を計算するときの仕組みを見直してパフォーマンスを
改善しました。

これまで統計情報を計算するときに、Mroongaでは「見積り」ではなくて律儀
に「本物」の件数を返していました。そのため、ヒット数が多いとそれなりに
時間がかかってしまうという問題がありました。

そもそも、統計情報を計算しているのは「高速に実行するための情報集め」な
ので、そこで時間がかかってしまい、全体の処理が遅くなってしまっていては
本末転倒です。そこで、「ざっくりとした見積り」の件数を返すようにしまし
た。これによりパフォーマンスが改善しています。

もし範囲検索で極端に遅く、show profileで確認したときにstatisticsが結構
な割り合いを占めているケースでは上記の問題に遭遇している可能性があります。
Mroongaを最新版にすることをおすすめします。

また、これにあわせて、mroonga_max_n_records_for_estimate というサーバー
変数を追加しました。これは、さきほどのざっくりとした見積りの件数の最大
値を指定するものです。デフォルトでは1000件です。この値はクエリを最適化
するにあたって、どのインデックスが使われるかに影響します。

# 変更点

5.01からの変更点は以下の通りです。
  http://mroonga.org/ja/docs/news.html#release-5-02

## 改良

  * [doc] リリース手順 を更新しました。
  * [ストレージ] 範囲指定のレコード数を見積もる際のパフォーマンスを改
    善しました。以前のバージョンでは、Mroongaは実際のレコード数をカウン
    トします。そのため、レコード数が増えるとパフォーマンスに影響していま
    した。この恩恵を受けるにはGroonga 5.0.2以降が必要です。
    [groonga-dev,03150] [嶋田さんが報告]
  * [実験的] mroonga_max_n_records_for_estimate サーバー変数を追加しま
   した。この変数はレコード数を見積る際の最大レコード数を制限するのに
   使います。対象となるレコードが多いときでも、見積もる際のコストを抑
   えることができます。
  * [rpm][centos] 最新のMySQL 5.6でビルドするようにしました。
  * [ラッパーモード] Mroongaの ORDER BY LIMIT 最適化で主キーのソートに対応
   しました。 [Tsugunori Nashiroさんが報告]
  * Debian 8.0 (Jessie)に対応しました。
  * Ubuntu 15.04 Vivid Vervetに対応しました。

## 修正

  * [doc] Windows版パッケージへのリンクが古いのを修正しました。
    [METAL_GEAR_mkIIさんが報告]
  * [ストレージモード][mysql56] ORDER BY のカラム指定が重複していると
    きにクラッシュする問題を修正しました。 ORDER BY LIMIT の最適化を適
    用するケースでSQLの ORDER BY カラム指定が重複しているときに発生し
    ます。この問題はMySQL 5.5には影響しません。 [GitHub#50] [GMOメディ
    ア株式会社さんが報告]

## 感謝

  * 嶋田さん
  * Tsugunori Nashiroさん
  * METAL_GEAR_mkIIさん
  * GMOメディア株式会社さん

-- 
HAYASHI Kentaro <hayas****@clear*****>




groonga-dev メーリングリストの案内
Back to archive index