Kentaro Hayashi
null+****@clear*****
Thu Apr 27 17:48:55 JST 2017
Kentaro Hayashi 2017-04-27 17:48:55 +0900 (Thu, 27 Apr 2017) New Revision: 48018c71f86e97a1a71a2e15513d39406c6ff063 https://github.com/groonga/groonga.org/commit/48018c71f86e97a1a71a2e15513d39406c6ff063 Message: blog ja: add 7.0.2 entry Added files: ja/_posts/2017-04-29-groonga-7.0.2.md Added: ja/_posts/2017-04-29-groonga-7.0.2.md (+118 -0) 100644 =================================================================== --- /dev/null +++ ja/_posts/2017-04-29-groonga-7.0.2.md 2017-04-27 17:48:55 +0900 (5caa0d8) @@ -0,0 +1,118 @@ +--- +layout: post.ja +title: Groonga 7.0.2リリース +description: Groonga 7.0.2をリリースしました! +published: false +--- + +## Groonga 7.0.2リリース + +今日は肉の日ですね! + +[Groonga 7.0.2](/ja/docs/news.html#release-7-0-2)をリリースしました! + +それぞれの環境毎のインストール方法: [インストール](/ja/docs/install.html) + +### 変更内容 + +今回のリリースでは、特定の条件下で [reindex](/ja/docs/references/commands/reindex) コマンドを使うとデータを失ってしまう不具合を修正しています。 + +主な変更点は以下の通りです。 + + * reindexコマンドの実行によりデータが失われてしまう不具合を修正しました + * Ubuntu 17.04 (Zesty Zapus)をサポートしました + * 永続化キャッシュをサポートしました + * [in_records] 既存のテーブルを条件のパターンとして指定できるようになりました + +#### reindexコマンドの実行によりデータが失われてしまう不具合を修正しました + +今回のリリースでは、特定の条件下でreindexコマンドを使うとデータが失われてしまう不具合を修正しました。 + +インデックスだけが壊れてしまった場合、reindexを使って復旧することができます。しかし、今回見つかった不具合の発生条件を満たすと、無事だったデータを消してしまいます。 + +この不具合は、reindexコマンドが追加されたGroonga 5.1.0からの潜在的な不具合した。 + +テーブルにデータカラムがなくインデックスカラムのみある場合、そのテーブルは語彙表として使っていると判断し、テーブルのキーを全部消してから作り直すようにしていましたが、そのせいでデータを消してしまっていました。 + +例えば、次のようにすると問題を再現することが可能です。 + + > table_create User TABLE_HASH_KEY ShortText + [[0,1490948112.512871,0.004843950271606445],true] + > table_create Comment TABLE_NO_KEY + [[0,1490948112.517823,0.004474639892578125],true] + > column_create Comment user COLUMN_SCALAR User + [[0,1490948112.522444,0.00609898567199707],true] + > column_create User comment COLUMN_INDEX Comment user + [[0,1490948112.528664,0.009341239929199219],true] + > load --table Comment + > [ + > {"user":"Mike"} + > ] + [[0,1490948112.538067,0.0004284381866455078],1] + + > select User + [[0,1490948112.538533,0.0002899169921875],[[[1],[["_id","UInt32"],["_key","ShortText"],["comment","UInt32"]],[1,"Mike",1]]]] + > select Comment + [[0,1490948112.53886,4.744529724121094e-05],[[[1],[["_id","UInt32"],["user","User"]],[1,"Mike"]]]] + + > reindex + [[0,1490948112.538933,0.02556586265563965],true] + + > select User + [[0,1490948112.564538,5.91278076171875e-05],[[[0],[["_id","UInt32"],["_key","ShortText"],["comment","UInt32"]]]]] + > select Comment + [[0,1490948112.564621,3.457069396972656e-05],[[[1],[["_id","UInt32"],["user","User"]],[1,""]]]] + +reindexした後の ``User`` テーブルと ``Comment`` テーブルのデータが失われていることがわかります。 + +#### Ubuntu 17.04 (Zesty Zapus)をサポートしました + +今回のリリースでは、今月リリースされたUbuntu 17.04 (Zesty Zapus)をサポートしました。 +PPA経由で[インストール](/ja/docs/install/ubuntu.html)できます。 + +また、Ubuntu 12.04は4/28にEOLとなったため、サポートをやめています。 + +#### 永続化キャッシュをサポートしました + +今回のリリースでは、永続化キャッシュと呼ばれる仕組みをサポートしました。 + +GroongaのキャッシュはGroongaを終了すると消えてしまいます。再び起動しなおした場合、再度キャッシュを作り直すまでにはタイムラグが発生します。 +永続化キャッシュを使うと、そのタイムラグを短縮することができます。 + +##### groongaコマンドの場合 + +groongaコマンド実行時に ``--cache-base-path`` オプションを指定します。 + +このオプションには永続化キャッシュを保存するパスを指定します。例えば、``--cache-base-path=/dev/shm/groonga-cache`` を指定すると、 ``/dev/shm`` 直下に永続化キャッシュファイルができます。この例だと次の2つのファイルが作成されます。 + +* ``/dev/shm/groonga-cache.keys`` +* ``/dev/shm/groonga-cache.values`` + +##### groonga-httpdの場合 + +groonga-httpdの設定ファイル(/etc/groonga/groonga-httpd.conf)に以下の設定を追加します。 + + http { + ... + groonga_cache_base_path /dev/shm/groonga-httpd-cache; + ... + } + +serverやlocationディレティブごとに指定することもできます。ここで指定した永続化キャッシュはワーカー間で共通です。従来のキャッシュの場合には、ワーカー毎にキャッシュを保持していました。永続化キャッシュでは共通なので、あるワーカーではキャッシュされていたので速いけど、ほかのワーカーではキャッシュされていなかったので遅い、というようなことが起きなくなります。また、キャッシュ数の設定をワーカー毎にしなくてすむようになります。 + +###### 注意事項について + +* メモリーファイルシステム上のパス(例:/dev/shm/xxxx)を必ず指定してください。ハードディスクなどディスクIOが遅い場合には、キャッシュを永続化しても、その読み込みに時間がかかってしまうため、キャッシュを永続化する利点が薄れてしまいます。 + +* 永続化キャッシュにおいて、キャッシュ数の制御がまだ行えません。cache_limitは従来のキャッシュのみサポートしています。永続化キャッシュのデフォルト設定値は100です。 + +* キャッシュを開けない場合は自動的に再作成するので問題ありませんが、クラッシュした場合はキャッシュファイルを削除してください。 + + +#### [in_records] 既存のテーブルを条件のパターンとして指定できるようになりました + +### さいごに + +7.0.1からの詳細な変更点は[7.0.2リリース 2017-04-29](/ja/docs/news.html#release-7-0-2)を確認してください。 + +それでは、Groongaでガンガン検索してください! -------------- next part -------------- HTML����������������������������... ダウンロード