Sender | Message | Time |
---|---|---|
30 Aug 2023 | ||
milano | なるほど、ってことは innodb_buffer_pool_size を減らしてみようと思います | 01:04:08 |
7 Sep 2023 | ||
ryusei145 | Redacted or Malformed Event | 04:03:09 |
ryusei145 | ここで聞くのが適切なのか分からないのですが、PGroongaのノーマライズ処理について、教えてください。 pgroongaでは、pgroonga_normalize() という関数でノーマライズ処理だけを実施することができるようですが、このノーマライズ処理ではタブや改行を含む0x01~0x1fの制御文字が削除されるようです。 ちょっと実験してみたのですが、Python や .NET の実装では削除されないようでした Unicode公式の仕様を確認しようと思い、以下のサイトにたどりつき、見てみると
との記述があるので、「各実装におまかせします」の世界なのかもしれません https://unicode.org/reports/tr15/#:~:text=they%20may%20impose,control groongaリポジトリをダウンロードしてみたのですが、ノーマライズ処理部分のソースを見つけることができませんでした。。。 | 04:25:43 |
ryusei145 | * ここで聞くのが適切なのか分からないのですが、PGroongaのノーマライズ処理について、教えてください。 pgroongaでは、pgroonga_normalize() という関数でノーマライズ処理だけを実施することができるようですが、このノーマライズ処理ではタブや改行を含む0x01~0x1fの制御文字が削除されるようです。 ちょっと実験してみたのですが、Python や .NET の実装では削除されないようでした Unicode公式の仕様を確認しようと思い、以下のサイトにたどりつき、見てみると
との記述があったので、「各実装におまかせします」の世界なのかもしれません https://unicode.org/reports/tr15/#:~:text=they%20may%20impose,control groongaリポジトリをダウンロードしてみたのですが、ノーマライズ処理部分のソースを見つけることができませんでした。。。 | 04:26:31 |
ryusei145 | * ここで聞くのが適切なのか分からないのですが、PGroongaのノーマライズ処理について、どなたか教えてください。 pgroongaでは、pgroonga_normalize() という関数でノーマライズ処理だけを実施することができるようですが、このノーマライズ処理ではタブや改行を含む0x01~0x1fの制御文字が削除されるようです。 ちょっと実験してみたのですが、Python や .NET の実装では削除されないようでした Unicode公式の仕様を確認しようと思い、以下のサイトにたどりつき、見てみると
との記述があったので、「各実装におまかせします」の世界なのかもしれません https://unicode.org/reports/tr15/#:~:text=they%20may%20impose,control groongaリポジトリをダウンロードしてみたのですが、ノーマライズ処理部分のソースを見つけることができませんでした。。。 | 04:26:56 |
ryusei145 | * ここで聞くのが適切なのか分からないのですが、PGroongaのノーマライズ処理について、どなたか教えてください。 pgroongaでは、pgroonga_normalize() という関数でノーマライズ処理だけを実施することができるようですが、このノーマライズ処理ではタブや改行を含む0x01~0x1fの制御文字が削除されるようです。 ちょっと実験してみたのですが、Python や .NET の実装では削除されないようでした Unicode公式の仕様を確認しようと思い、以下のサイトにたどりつき、見てみると
との記述があったので、「各実装におまかせします」の世界なのかもしれません https://unicode.org/reports/tr15/#:~:text=they%20may%20impose,codes. groongaリポジトリをダウンロードしてみたのですが、ノーマライズ処理部分のソースを見つけることができませんでした。。。 | 04:28:25 |
ryusei145 | * ここで聞くのが適切なのか分からないのですが、PGroongaのノーマライズ処理について、どなたか教えてください。 pgroongaでは、pgroonga_normalize() という関数でノーマライズ処理だけを実施することができるようですが、このノーマライズ処理ではタブや改行を含む0x01~0x1fの制御文字が削除されるようです。 ちょっと実験してみたのですが、Python や .NET の実装では削除されないようでした Unicode公式の仕様を確認しようと思い、以下のサイトにたどりつき、見てみると
との記述があったので、「各実装におまかせします」の世界なのかもしれません https://unicode.org/reports/tr15/#:~:text=they%20may%20impose,codes. ソースも見てみようと、groongaリポジトリをダウンロードしてみたのですが、ノーマライズ処理部分のソースを見つけることができませんでした。。。 | 04:29:18 |
kou | 意図した設計です。 表示できない文字は削除しています。 https://github.com/groonga/groonga/blob/master/lib/normalizer.c#L2963-L2964 削除して欲しくないユースケースがあるということですよね? どういうケースですか? | 04:56:11 |
ryusei145 | In reply to @ktou:matrix.org PGroongaの本来の使い方から、外れてしまっているのを理解しつつなのですが、
のような条件で検索しております。 と、思ったら "remove_new_line" なるオプションがあるのですね! がんばって修正して、PRするほどの困り具合ではないので、 早速のコメントありがとうございました🙇♂️ ※ もろもろの事情: | 05:45:54 |
ryusei145 | In reply to @ktou:matrix.org* PGroongaの本来の使い方から、外れてしまっているのを理解しつつなのですが、
のような条件で検索しております。 と、思ったら "remove_new_line" なるオプションがあるのですね! がんばって修正して、PRするほどの困り具合ではないので、 早速のコメントありがとうございました🙇♂️ ※ もろもろの事情: | 05:46:25 |
kou | なるほどー
本当にそんなに長い文字列に対して等価条件が必要な場合は正規表現用のインデックスを作ることで対応できます。
これは https://pgroonga.github.io/ja/reference/operators/query-v2.html とかにある | 05:51:14 |
ryusei145 | Redacted or Malformed Event | 05:55:09 |
ryusei145 | In reply to @ktou:matrix.org そうなんです。 実は話を端折ってしまったのですが、正規表現用のインデックスでは
でも、速度改善とディスク容量(+更新速度)を天秤にかけた結果、後半部分が無くなり今に至る、という状況でございます。 | 06:07:03 |
kou | 正規表現でも ちなみに、ディスク容量ってどのくらい食っていました? | 06:10:31 |
ryusei145 |
120のカラムに対して3つずつ(等価、全文、正規表現)インデックスを張って100MB → 10GB くらいです(スパースファイルの仮想サイズではなく実サイズで)
無いです。全然無いです。 もともとのカラム定義が varchar(1024)となっていただけで、実際に入っているデータは数文字から数十文字くらいまでです。 | 06:24:04 |
kou | 10GBはたしかに大きいですね。 10GB/(120 * 3)=28MBなので1つあたり大体30MB弱ですか。(等価は全文・正規表現よりもかなり小さいはずですけど、ざっくり計算すると。) ちなみに、正規表現用のインデックスがあれば等価と全文はカバーできるので1つにできるんですが、それでも3.3GBですか。 まぁ、でも120個インデックスがあればこんなものですかねぇ。 数GBがしんどい場合はたしかにPGroongaは向いていないですねぇ。 | 06:50:03 |
ryusei145 |
これ、私も思うところはいろいろあるんですが、、、諸事情です 😭 あと、正規表現を使う時は検索する値をエスケープしてあげないといけないところも少し課題になったところでした。 | 06:58:42 |
kou | たしかにエスケープは面倒ですね。。。 | 07:19:02 |
15 Sep 2023 | ||
takoyaki-nyokki | Redacted or Malformed Event | 02:45:16 |
takoyaki-nyokki | * お世話になります。 数か月前にもこちらで確認をさせていただいたのですが、 その時とは別件で確認したいことがあり、こちらで質問をさせていただきます。 場違いでしたら申し訳ございません。 現在、AlmaLinux9のサーバを2台用意して、 PostgreSQL13をそれぞれインストールし、Groonga(13.0.1、もしすると13.0.2)、PGroonga(2.4.2)をインストールし、 さらにpgpool(4.2)でサーバ間の連携を行っている状態です。 利用してしばらくは問題なく動作していたのですが、 突然以下のようなエラーが発生してpgroongaのインデックスが破損したようです。 ERROR: pgroonga: [insert] failed to set column value: [ii][update][one] failed to split a buffer: <Lexicon121284_0.index> ひとまずはREIDNEXでインデックスを修正して、このエラーも発生しなくなったのですが、 それから1週間程度でまた同じエラーが発生するようになってしまいました。 このエラーについて何かご存知の方はいらっしゃいませんでしょうか。 こちらでも調査をしているのですが、いまいち原因がつかめていない状態です。 恐れ入りますがご連絡いただければ幸いです。 | 02:54:25 |
takoyaki-nyokki | お世話になります。 数か月前にもこちらで確認をさせていただいたのですが、 その時とは別件で確認したいことがあり、質問をさせていただきます。 場違いでしたら申し訳ございません。 ※先ほど同じ投稿をしたのですが、編集した際に改行が消えてしまったので削除しました。 現在、AlmaLinux9のサーバを2台用意して、 PostgreSQL13をそれぞれインストールし、Groonga(13.0.1、もしかすると13.0.2)、PGroonga(2.4.2)をインストールし、 さらにpgpool(4.2)でサーバ間の連携を行っている状態です。 利用してしばらくは問題なく動作していたのですが、 突然以下のようなエラーが発生してpgroongaのインデックスが破損したようです。 ERROR: pgroonga: [insert] failed to set column value: [ii][update][one] failed to split a buffer: <Lexicon121284_0.index> ひとまずはREIDNEXでインデックスを修正して、このエラーも発生しなくなったのですが、 それから1週間程度でまた同じエラーが発生するようになってしまいました。 このエラーについて何かご存知の方はいらっしゃいませんでしょうか。 こちらでも調査をしているのですが、いまいち原因がつかめていない状態です。 恐れ入りますがご連絡いただければ幸いです。 | 02:55:35 |
kou | ログの一部だとなんともなので https://github.com/pgroonga/pgroonga/issues にissueを作ってログを添付してもらえますか? | 02:59:21 |
takoyaki-nyokki | 申し訳ありません、ログには社外情報が含まれる可能性があるため丸ごとお渡しするのは難しいです。 というより、そもそもエラー自体はこの一文しか存在していない状態です。 正確には以下のように途切れていますした。 ※一部社外情報が含まれていたため「文字列」と書き直しています。 pgroonga: [insert] failed to set column value: [ii][update][one] failed to put to buffer: <Lexicon121284_0.index>: <"文字列">(141567): (405041:1): [ii][buffer][merg | 03:17:25 |
kou | うーん、 NDAを結んだ上であれば追加情報を提供できるということであれば、有償サポートをご検討ください。 あ、pgpoolが関係している可能性は非常に低いと思います。 | 03:28:44 |
takoyaki-nyokki | ご連絡ありがとうございます。 恥ずかしながら、pgroonga.logというファイルの存在に気づいておりませんでした。 確認したところインデックスのエラーが発生するようになってから 以下のように「libgrronga.so.0」に関するログが出るようになっておりました。 2023-09-15 08:37:55.611218|e|369387: [ii][dec][byte] input is short: at least 1 byte is needed: <Lexicon121284_0.index>: <"文字列">(147397): n-values(3): n-odd-values(0): dv[1/2]: data[0/3] 2023-09-15 08:37:55.641648|e|369387: /lib64/libgroonga.so.0(grn_ctx_log_back_trace+0x76) [0x7f4e773047b6] 2023-09-15 08:37:55.641679|e|369387: /lib64/libgroonga.so.0(+0xf6540) [0x7f4e772f6540] 2023-09-15 08:37:55.641683|e|369387: /lib64/libgroonga.so.0(+0xf65ff) [0x7f4e772f65ff] 2023-09-15 08:37:55.641686|e|369387: /lib64/libgroonga.so.0(+0x4a5c19) [0x7f4e776a5c19] 2023-09-15 08:37:55.641689|e|369387: /lib64/libgroonga.so.0(+0x1d9938) [0x7f4e773d9938] 2023-09-15 08:37:55.641692|e|369387: /lib64/libgroonga.so.0(+0x1d9baa) [0x7f4e773d9baa] 2023-09-15 08:37:55.641696|e|369387: /lib64/libgroonga.so.0(+0x1e2530) [0x7f4e773e2530] 2023-09-15 08:37:55.641698|e|369387: /lib64/libgroonga.so.0(+0x4a726c) [0x7f4e776a726c] 2023-09-15 08:37:55.641701|e|369387: /lib64/libgroonga.so.0(+0x4aa992) [0x7f4e776aa992] 2023-09-15 08:37:55.641704|e|369387: /lib64/libgroonga.so.0(+0x4b73c4) [0x7f4e776b73c4] 2023-09-15 08:37:55.641707|e|369387: /lib64/libgroonga.so.0(+0x4b475f) [0x7f4e776b475f] 2023-09-15 08:37:55.641710|e|369387: /lib64/libgroonga.so.0(+0x4b51e3) [0x7f4e776b51e3] 2023-09-15 08:37:55.641713|e|369387: /lib64/libgroonga.so.0(grn_ii_update_one+0x1844) [0x7f4e773ec9e4] 2023-09-15 08:37:55.641716|e|369387: /lib64/libgroonga.so.0(grn_ii_column_update+0x61a) [0x7f4e773f2d2a] 2023-09-15 08:37:55.641719|e|369387: /lib64/libgroonga.so.0(grn_obj_default_set_value_hook+0x98) [0x7f4e77312938] 2023-09-15 08:37:55.641722|e|369387: /lib64/libgroonga.so.0(+0x11f6f2) [0x7f4e7731f6f2] またGroongaのバージョンを確認したところ13.0.2で確定できました。 リリースで見逃していたのですが「インデックス構築に失敗することがある」みたいなので、 ひとまずバージョンアップを検討してみようかと思っております。 お手間をお取りしてしまい申し訳ございませんでした。 | 04:45:10 |
kou | * うーん、 NDAを結んだ上であれば追加情報を提供できるということであれば、有償サポートをご検討ください。 あ、pgpoolが関係している可能性は非常に低いと思います。 | 06:42:49 |
kou | あぁ、たしかに、その問題が関係している可能性はあるかもしれません。 | 06:43:17 |
2 Oct 2023 | ||
@temp4096:matrix.org joined the room. | 12:38:21 | |
3 Oct 2023 | ||
@temp4096:matrix.org left the room. | 09:25:34 | |
10 Oct 2023 | ||
smdmts (Masatoshi Shimada) joined the room. | 05:41:48 |