Kentaro Hayashi
null+****@clear*****
Fri May 27 22:39:03 JST 2016
Kentaro Hayashi 2016-05-27 22:39:03 +0900 (Fri, 27 May 2016) New Revision: 4cffd47eb9cd3688b7e79db474aab9c03b5b2e21 https://github.com/groonga/groonga.org/commit/4cffd47eb9cd3688b7e79db474aab9c03b5b2e21 Message: blog ja: WIP add 6.0.3 entry Added files: ja/_posts/2016-05-29-groonga-6.0.3.md Added: ja/_posts/2016-05-29-groonga-6.0.3.md (+110 -0) 100644 =================================================================== --- /dev/null +++ ja/_posts/2016-05-29-groonga-6.0.3.md 2016-05-27 22:39:03 +0900 (d3ff6f9) @@ -0,0 +1,110 @@ +--- +layout: post.ja +title: Groonga 6.0.3リリース +description: Groonga 6.0.3をリリースしました! +published: false +--- + +## Groonga 6.0.3リリース + +[Groonga 6.0.3](/ja/docs/news.html#release-6-0-3)をリリースしました! + +それぞれの環境毎のインストール方法: [インストール](/ja/docs/install.html) + +### 変更内容 + +主な変更点は以下の通りです。 + +* command version 3を導入しました +* インデックスを使わない場合の最適化によりbetween()を高速化しました +* 新規プラグインを2つ追加しました +* ウィンドウ関数をサポートしました + +#### command version 3を導入しました + +今回のリリースでは、コマンドバージョン3を導入しました。 + +Groongaには[コマンドにバージョン](http://groonga.org/ja/docs/reference/command/command_version.html)の概念があります。 + +従来は``[HEADER, BODY]``という形式でレスポンスを返していました。 + + > status + [[0,1464342851.826973,0.0002036094665527344],{"alloc_count":273,"starttime":1464342849,"start_time":1464342849,"uptime":2,"version":"6.0.3","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":3}] + +コマンドバージョン 3を指定すると、レスポンスは次のようにオブジェクトリテラル形式となります。 + + > status --command_version 3 + {"header":{"return_code":0,"start_time":1464342859.177147,"elapsed_time":0.0001118183135986328},"body":{"alloc_count":276,"starttime":1464342849,"start_time":1464342849,"uptime":10,"version":"6.0.3","n_queries":0,"cache_hit_rate":0.0,"command_version":3,"default_command_version":1,"max_command_version":3}} + +コマンドバージョン 3がサポートされたことで、例えば、JavaScriptなどからレスポンスを扱いやすくなりますね。 + +#### インデックスを使わない場合の最適化によりbetween()を高速化しました + +今回のリリースでは、インデックスを使わない場合の最適化によりbetween()を高速化することができました。 + +インデックスを使った場合は速かったのですが、それに比べるとインデックスを使わなかった時のパフォーマンスに問題がありました。 +今回はそのパフォーマンスの問題が改善されています。 + +どれくらい改善されたかというのをベンチマークを示します。 + +テストケースには次のようなスキーマを使いました。 + + table_create Entries TABLE_NO_KEY + column_create Entries rank COLUMN_SCALAR Int32 + +インデックスを使わずに、シーケンシャルサーチが行われるケースです。 + +テストデータは千件から百万件の4つのパターンを用意しました。 + +* 1000件 +* 10,000件 +* 100,000件 +* 1,000,000件 + +シーケンシャルな連番を``rank``として設定されているデータです。 + +これに対して、次のようにbetween()を適用してみました。100件だけ範囲検索するケースです。 + +* 1000件(rankの値が500より大きく、600以下) +* 10,000件(rankの値が5000より大きく、5100以下) +* 100,000件(rankの値が50,000より大きく、50,100以下) +* 1,000,000件(rankの値が500,000より大きく、500,100以下) + +クエリは例えば次のようなものです。 + + select Entries --cache no --filter 'between(rank, 500, "exclude", 600, "include")' + +ベンチマークの結果は次のようになりました。10回実行した中央値をだしています。 + +|レコード数|Groonga 6.0.2(ms)|Groonga 6.0.3(ms)| +|--------:|:---------------:|:---------------:| +| 1,000| 4.3| 0.2590| +| 10,000| 39.5| 0.6440| +| 100,000| 390| 5.1| +|1,000,000| 3798.3| 44.2| + +ぱっと見でもその違いがわかりますが、これを対数グラフ化するとこんな風になります。 + + + +#### + +### お知らせ + +来月以降、以下のイベントが予定されています。 + +* [MySQLとPostgreSQLと日本語全文検索2](https://groonga.doorkeeper.jp/events/41770) + * 2016-06-09(木)20:00 - 22:00 DMM.comラボ + * 「MySQLとPostgreSQLと日本語全文検索」の第2弾です。前回はMySQL・PostgreSQLの日本語全文検索機能を使ったことがない人向けの内容でしたが、今回は使ったことがある(触ってみたくらいで十分)人向けの内容です。まだ参加申し込みが可能です。 + +* [Groongaで学ぶ全文検索 2016-06-17](https://groonga.doorkeeper.jp/events/45556) + * 2016-06-17(金)20:00 - 22:30 [東京都渋谷区広尾1-1-39 恵比寿プライムスクエアタワー20階](https://www.google.co.jp/maps?q=35.650109,139.71259880000002) (株式会社イーライセンスシステムズ) + * 予習復習なしで全文検索とGroongaについて学ぶことができるイベントです。内容は参加者にあわせてその場で決めるので、前の回に参加していないとついていけない、ということはありません。 + +興味があるイベントがあればぜひご参加ください! + +### さいごに + +6.0.2からの詳細な変更点は[6.0.3リリース 2016-05-29](/ja/docs/news.html#release-6-0-3)を確認してください。 + +それでは、Groongaでガンガン検索してください! -------------- next part -------------- HTML����������������������������...下载