Kouhei Sutou
null+****@clear*****
Fri Jan 29 14:52:35 JST 2016
Kouhei Sutou 2016-01-29 14:52:35 +0900 (Fri, 29 Jan 2016) New Revision: 2437e0e415caef35d209d61a3fb0fd17fa640a7d https://github.com/groonga/groonga.org/commit/2437e0e415caef35d209d61a3fb0fd17fa640a7d Message: Groonga 5.1.2 has been released!!! Added files: ja/_posts/2016-01-29-groonga-5.1.2.md Added: ja/_posts/2016-01-29-groonga-5.1.2.md (+79 -0) 100644 =================================================================== --- /dev/null +++ ja/_posts/2016-01-29-groonga-5.1.2.md 2016-01-29 14:52:35 +0900 (788caab) @@ -0,0 +1,79 @@ +--- +layout: post.ja +title: Groonga 5.1.2リリース +description: Groonga 5.1.2をリリースしました! +--- + +## Groonga 5.1.2リリース + +今日は今年最初の肉の日ですね! + +[Groonga 5.1.2](/ja/docs/news.html#release-5-1-2)をリリースしました! + +それぞれの環境毎のインストール方法: [インストール](/ja/docs/install.html) + +### 変更内容 + +主な変更点は以下の通りです。パフォーマンス改善、データベース単位の設定項目サポート、エイリアス機能の追加、mruby関連のクラッシュバグ修正などもりだくさんです。 + + * [パフォーマンス改善] 多くの条件でシーケンシャルサーチのパフォーマンスが向上しました。件数が多ければ多いほど効果が大きくなります。100万件くらいのレコードであれば数倍速くなります。 + * [[設定](/ja/docs/reference/configuration.html)] データベース単位で設定項目を管理できるようになりました。永続化されるため1度設定した値は再起動後も残っています。 + * [[エイリアス](/ja/docs/reference/alias.html)] テーブル・カラムなどの名前に別名(エイリアス)をつけられるようになりました。スキーマ変更の助けになるはずです。 + * [mruby] mruby本体にあったクラッシュバグを修正しました。また例外発生時にバックトレースが壊れる問題も修正しました。安定性、問題発生時のデバッグのしやすさが改善しています。 + +#### パフォーマンス改善 + +前回のリリースでは`COLUMN @~ "CONSTANT_PATTERN"`のような定数のパターンに対する[正規表現](/ja/docs/reference/regular_expression.html)マッチのシーケンシャルスキャン検索のパフォーマンスを改善しました。 + +今回のリリースでは、さらに、`true`や`29`のような定数のみの条件、`COLUMN == 29`のような二項演算の条件でもシーケンシャルスキャン検索のパフォーマンスを改善しました。二項演算は`==`だけでなく非等価演算(`!=`)と`<`や`>=`などの比較演算も改善対象なので多くのケースで高速になります。 + +Groongaはカラムストアのデータストアを採用しており、カラム単位での処理を効率よく実現できるアーキテクチャーになっています。今回のパフォーマンス改善はこの特性を活かしたものです。(さらに活かしているのが[grn\_ts](/ja/blog/2015/10/22/grn_ts.html)で、今回の改善後から、さらに数倍速いです。) + +現在のGroongaの検索処理はインデックスを使えるならできるだけインデックスを使う、という方針で実行しているのですが、十分に絞り込めている状態ではインデックスを使うよりもシーケンシャルスキャンした方が速いこともあります。今後は実行プランを改善し、場合によってはシーケンシャルスキャンも優先して、トータルでより高速な検索処理を実現する予定です。 + +#### 設定 + +データベース単位で[設定](/ja/docs/reference/configuration.html)項目を管理できるようになりました。コマンドライン引数やリクエストパラメーターと違い、データベースに永続化されるため、1度設定した値は再起動後も残っています。 + +設定項目は以下のコマンドで管理できます。 + + * [`config_set`](/ja/docs/reference/commands/config_set.html) + * [`config_get`](/ja/docs/reference/commands/config_get.html) + * [`config_delete`](/ja/docs/reference/commands/config_delete.html) + +この設定機能はGroonga内部で使うために開発した機能ですが、ユーザーも自由に使えます。プラグインの挙動をカスタマイズしたい、ちょっとしたキーバリューストアが欲しい、といったときに活用してください。 + +#### エイリアス + +前述の設定機能を使っているのがこの[エイリアス](/ja/docs/reference/alias.html)機能です。この機能を使うと、テーブル・カラム・関数名・コマンド名など、Groonga内で名前で参照しているものすべてに別名(エイリアス)をつけることができます。 + +サービスに影響がないようにスキーマ変更をしたり、後方互換性を実現するために有用です。 + +たとえば、ユーザーには`aliased_column`のようにエイリアス名を使うようにしてもらいます。管理者は`aliased_column`が`current_column`を指すようにします。その後、`current_column`を変更した`new_column`を新しく用意し、準備ができた段階で`aliased_column`が指すカラムを`new_column`に変更すれば、ユーザーのクエリーを一切変更せずに`new_column`を使えるようになります。 + +エイリアスをスキーマ変更のために使う例は[エイリアス](/ja/docs/reference/alias.html)でも説明しているので参照してください。 + +関数名・コマンド名を変更するとき、変更前の名前をエイリアスとして登録しておけば、変更後もその名前でアクセスできるので後方互換性を維持できます。 + +活用してください。 + +#### mruby + +Groongaがmrubyを組み込んでから2年ほど経っています。mrubyを活用する場面は徐々に増えていて、コマンドラインツール[grndb](/ja/docs/reference/executables/grndb.html)はmrubyで実装していますし、[シャーディング](/ja/docs/reference/sharding.html)機能もmrubyで実装しています。 + +Groongaプロジェクトはmrubyで問題が見つかったときはmruby本体にフィードバックしています。今回のリリースで修正した内容もmruby本体にフィードバックして取り込まれています。 + +今回の修正でGroongaのユースケースとしてはmrubyは十分安定したと言えます。近い将来、mrubyを必須のモジュールとし、よりmrubyを活用することを検討しています。 + +### イベントのおしらせ + +今月・来月には以下のイベントが予定されています。 + +* 1/29(金) [Groongaで学ぶ全文検索 2016-01-29](https://groonga.doorkeeper.jp/events/37647) +* 2/9 (火) [MySQLとPostgreSQLと日本語全文検索](https://groonga.doorkeeper.jp/events/35295) + +### さいごに + +5.1.1からの詳細な変更点は[5.1.2リリース 2016-01-29](/ja/docs/news.html#release-5-1-2)を確認してください。 + +それでは、今年もGroongaでガンガン検索してください! -------------- next part -------------- HTML����������������������������... Download