今回の主な変更点は次の通りです。改良drilldownで集計しやすくなりましたgroonga-httpdでdumpをストリーム処理できるように実験的な変更Windowsでデータベースの初期サイズをよりコンパクトにマルチスレッドでのパフォーマンス改善それでは、いくつか簡単に紹介します。drilldownで集計しやすくなりました今回のリリースでは、drilldownで集計しやすくなりました。drilldownの構文には以下の2つの種類がありますが、drilldowndrilldown(ラベルつき)今回機能拡張したのはどちらの構文もなのですが、今回はdrilldown(ラベルつき)について紹介します。算出できるようになりました。次の引数をselectコマンドに渡します。--drilldown[${LABEL}].calc_target=(対象カラム)具体的な例をみてみましょう。MAXを使ってグループごとの最大値を取得する例です。_key,_max結果は次のようになります。]}3つにグループ化され、タグとグループごとの最大値が返ってくるのがわかります。最大値だけでなく最小値も取得したいなら、calc_typesに複数カンマ区切りで指定します。疑似カラムの指定も忘れないようにしましょう。_key,_max,_minこれで、最大値と最小値をグループ化した結果ごとに取得できます。calc_typesの詳細はドキュメントを参照してください。groonga-httpdでdumpをストリーム処理できるように今回のリリースでは、groonga-httpdでdumpをストリーム処理できるようになりました。Groongaのdumpとgrndumpのメモリ消費の違い上記はgroongaコマンドとgrndumpの比較ですが、groonga-httpdでストリーム処理ができるようになったので、メモリが足りなくなってdumpできないという状況は改善されました。dumpしたいだけならgroonga-httpdでもできます。dumpする内容をカスタマイズしたいというときにはgrndumpがおすすめです。Windowsでデータベースの初期サイズをよりコンパクトに今回のリリースでは、データベースの初期サイズを小さくできるようにしました。これまで、WindowsではUNIXとは異なりかなりサイズが大きい初期ファイル(128MiB)をデフォルトで使っていました。このデータベースファイルはカラムを作れば作るだけ増えていくので、登録しているデータが少ない場合にはかなり無駄な領域があることになります。これはあまり嬉しくないので、WindowsでもGNU/Linux環境と同じように必要に応じて追加していくように挙動を変更できるようにしました。以下のメールに詳しいことが書いてあります。Windowsでの動作確認のお願いただし、デフォルトでは有効にしていません。実験的な機能だからです。環境変数を指定してください。Windowsを使っている人は、この機能を有効にして使ってみてどうだったかを教えてもらえると嬉しいです。安定して動いているよ、という声が増えてきたら、デフォルトで有効にします。試す際、GRN_IO_VERSION=1を有効にすると古いGroongaではそのデータベースを開けなくなることにだけ注意してください。今回のリリースでは、マルチスレッドでのパフォーマンス改善のための仕組みを実験的に入れました。具体的には、--with-jemallocをつけてGroongaをビルドするとメモリアロケーションの実装にjemallocを使うようにしました。パフォーマンスを改善できるでしょう。マルチスレッドではなく、マルチプロセスモデルで動作しているためです。Groongaをビルドしなおすのはつらい、という人はLD_PRELOAD環境変数にjemallocのパスを明示的に指定してGroongaを実行してみてください。次のように指定します。groonga試してみて、どれくらいパフォーマンスを改善できたかレポートしてくれると嬉しいです。2.1の下でリリースされています。