Kouhei Sutou
kou****@clear*****
2015年 8月 31日 (月) 14:07:04 JST
須藤です。 肉の日は過ぎ去ってしまいましたが、Groonga 5.0.7をリリースし ました! http://groonga.org/ja/blog/2015/08/31/release.html このリリースについて説明します。 ○ 条件に該当する人はアップグレード推奨 このリリースでは「静的インデックス構築」のバグフィックスが含 まれています。このバグが発生すると、ヒットするべきでないレコー ドがヒットする(誤ヒット)、あるいは、ヒットするべきレコード がヒットしない(検索漏れ)、という現象が発生します。 そのため、次のすべての条件に当てはまる方はアップグレードを推 奨します。自分の使い方を確認してください。 * マルチカラムインデックス(WITH_SECTIONフラグ付きのインデッ クスカラム)を使っている * 静的なインデックス構築方法を使っている なお、現在バグが発生したインデックスがある場合、アップグレー ドしてインデックスを作りなおすことで問題は解決します。データ の再投入は必要ありません。 ○ WindowsでのGroongaユーザーにお願い WindowsでGroongaを使っている方にお願いがあります。 このリリースではWindowsで「スパースファイル」というものを使 う機能が入っています。「スパースファイル」を使うと次の効果を 期待できますが、いくつか懸念点があるので、デフォルトでは無効 になっています。効果が確認できて、懸念が払拭できればデフォル トで有効にする予定なので、お手持ちのデータで実際に試してみて、 その結果を教えてもらえないでしょうか? 期待する効果: * データベースの使用ディスクサイズが減少 懸念点: * パフォーマンスが劣化しない? * メモリー使用量(特に仮想メモリー使用量)が増えない? 検証方法や結果の報告方法はGitHubのissueにまとめたので、 WindowsでGroongaを使っている方はぜひご協力よろしくお願いしま す。 https://github.com/groonga/groonga/issues/384 ○ 変更点一覧 改良 ^^^^ * [実験的][Windows] スパースファイルをサポートしました。こ の機能は実験的な機能です。デフォルトでは無効です。 GRN_IO_USE_SPARSE=yes 環境変数を指定すると有効にできます。 * Windows上でデータベースのファイルサイズを小さくできます。 この機能を試して結果を報告してください。Groonga開発者は 次の点に興味があります。 * ディスク使用量 * パフォーマンス(速くなったか?遅くなったか?変化はないか?) * メモリー使用量(特に仮想メモリー使用量) * [実験的][logical_shard_list] 指定された論理テーブルのシャー ドのリストを返すコマンドを追加しました。 * [実験的][正規表現演算子] インデックスなしでもベクターカ ラムに対して正規表現を使えるようになりました。 * [logical_range_filter] --cache no オプションをサポートし ました。これは、 select の cache オプションと同じ機能で す。 * [groonga-httpd] thread_limit の最大スレッド数を返す機能 に対応しました。最大スレッド数を設定することはできません。 * [grn_db_unmap()] 開いているすべてのテーブルとカラムをア ンマップするAPIを追加しました。これはスレッドセーフでは ない操作です。 grn_db_unmap() 実行中はデータベースを触る ことはできません。 * [database_unmap] データベース内の開いているすべてのテー ブルとカラムをアンマップするコマンドを追加しました。 * [object_exist] データベース内に指定された名前のオブジェ クトが存在するかどうかを返すコマンドを追加しました。 * [column_copy] コピー元カラムからコピー先カラムへすべての 値をコピーするコマンドを追加しました。 * このコマンドを使うと、カラムの値の型を変更したり、カラム の種類を変更したり、テーブルの種類を変更したりできます。 * 非標準の __uint32_t 型を使うことを止めました。 [GitHub#375][Natanael Copaさんが報告] * [実験的][Windows] Windowsイベントログをサポートしました。 * [mruby] mrubyの初期化エラー処理をサポートしました。 * [実験的][thread_limit] thread_count からリネームしました。 * info レベルと debug レベルで使用したインデックスをログに 出力するようになりました。これはRDBMSの EXPLAIN のように 使うことができます。スロークエリーを改良するときに便利で す。 * [ドキュメント] 非推奨の KEY_NORMALIZE フラグを置き換えま した。 [GitHub#378][GitHub#380][GitHub#382] [佐藤さんが パッチ提供] * [ドキュメント] 必要のないSphinxの設定を削除しました。 [GitHub#379] [長内さんがパッチ提供] * [実験的][非互換][正規表現演算子] . のマッチの挙動が変わ りました。 . は改行にもマッチします。これは後方非互換な 変更です。 * [ドキュメント][リポジトリーのGroongaをビルドする方法] Groongaの開発者としてGroongaをビルドするためのドキュメン トを追加しました。 [GitHub#353] [吉岡さんが提案] 修正 ^^^^ * [mruby] 時間の値がオーバーフローするバグを修正しました。 * [groonga executable file] PIDファイルを作成できないとき にクラッシュする問題を修正しました。 [GitHub#368] [佐藤 さんが報告] * 静的なインデックス構築方法 が壊れたインデックスを構築す る可能性がある問題を修正しました。この問題はマルチカラム インデックスのインデックスを構築するときに発生する可能性 があります。言いかえると、 WITH_SECTION フラグ付きのイン デックスカラムは壊れる可能性があるということです。 WITH_SECTION フラグ付きのインデックスカラムに 動的なイン デックス構築方法 を使っている場合はこのバグの影響はあり ません。 このバグで壊れたインデックスは既存のマルチカラムインデッ クスを再作成すると復旧できます。 * [query] scorer で query を使うとクラッシュするバグを修正 しました。 * [filter] 符号なし整数に ビット否定演算子 を使うと、 -数 値リテラル との比較が正常に動かないバグを修正しました。 たとえば、次の式は正常に動きません。: ~UINT32_COLUMN == -6 * 正規表現演算子 がマルチスレッド環境で動かない問題を修正 しました。 * メモリーリークをいくつか修正しました。 * ビルドエラーを修正しました。 [GitHub#381] [畑ケさんがパッチ提供] 感謝 ^^^^ * 佐藤さん * Natanael Copaさん * 長内歩さん * 畑ケさん * 吉岡さん -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/