[groonga-dev,03843] Re: Mroonga で timestamp 型の index が破損するパターンがある(ストレージモード)

Back to archive index

Kouhei Sutou kou****@clear*****
2016年 1月 10日 (日) 17:23:23 JST


須藤です。

補足します。

この件ですが、インデックスが壊れているわけではなくて、検索方
法(というか見積もり件数の返し方)がよくなかっただけなので、
アップグレードすればインデックスを再構築しなくてもちゃんとし
た結果を返すようになります!

In <20160****@clear*****>
  "[groonga-dev,03842] Re: Mroonga で timestamp 型の index が破損するパターンがある(ストレージモード)" on Sun, 10 Jan 2016 17:18:16 +0900 (JST),
  Kouhei Sutou <kou****@clear*****> wrote:

> 須藤です。
> 
> In <20160****@domai*****>
>   "[groonga-dev,03836] Re: Mroonga で timestamp 型の index が破損するパターンがある(ストレージモード)" on Wed, 06 Jan 2016 19:19:26 +0900,
>   各務 洋 <kagam****@outwa*****> wrote:
> 
>> 頂いたスクリプト(test.sh)ですが、ちょっと順序が違うようでした。
>> これで再現しましたが、どうでしょうか?
> 
> ありがとうございます!
> 手元でも再現したので直しました!
> 
> 各務さんはmysql-community-mroongaのCentOS 6 x86_64でしたよね。
> ↓にパッケージをおいておきました。
>   http://packages.groonga.org/tmp/mysql-community-mroonga-5.12-1.el6.x86_64.rpm
> 
> 5.01(2015年3月29日リリース)の頃にヒットレコード数が増える
> と範囲検索が遅くなるという問題がありました。
> ↓の「mroongaのウォームアップと範囲指定」の件です。
>   https://osdn.jp/projects/groonga/lists/archive/dev/2015-April/thread.html
> 
> MySQLは実際に範囲検索する前にMroongaに「どのくらいヒットしそ
> う?」と聞くんですが、Mroonga 5.01の頃までは正直に「○○件ヒッ
> トするよ!」と答えていました。当然ヒット件数が増えると時間が
> かかります。
> 
> しかし、MySQLは速い実行計画を決めるために「どのくらいヒット
> しそう?」と聞いているだけなので、その回答にたくさん時間がか
> かるのは本末転倒です。そのため、5.02からは「ちょっと調べて
> ○○件ヒットしそう」と返すことにしました。これならあまり時間
> はかかりません。
> 
> ただ、ちょっと調べた中にヒットするレコードがない場合は「0件
> ヒットしそう」と答えるのが問題になります。この場合、MySQLは
> 「あ、ヒットしないんだ。じゃあ検索せずに0件ヒットと返すね」
> と処理してしまいます。この場合、ちょっと調べた中ではヒットし
> ないけど、ちゃんと検索するとヒットする場合は異なる結果(ヒッ
> トしない)になってしまいます。これが、今回のケースです。
> 
> そのため、ちょっと調べた中にヒットするレコードがなくても、そ
> れが全部の検索でない場合は「(ちょっと調べた中では0件だけど)
> 1件ヒットしそう」と返すことにしました。MySQLは1件あるならちゃ
> んと検索しようかと考えるので、ちゃんと検索する処理が走って正
> しい結果が返ります。
> 
> なお、この問題の小さな再現ケースは次のSQLになりました。
> (3件登録して1件削除。)
> 
>   https://github.com/mroonga/mroonga/blob/8648af37b2aff4da4bf22afb32bedcab4acce3fd/mysql-test/mroonga/storage/variable/max_n_records_for_estimate/t/not_found_in_limit.test
> 
> 
> -- 
> 須藤 功平 <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/readable-code-workshop.html
> 
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.osdn.me/mailman/listinfo/groonga-dev




groonga-dev メーリングリストの案内
Back to archive index