[groonga-dev,04555] Re: JSONB や 配列フィールドについての pgroonga インデックス作成時間および、jsonb のフェッチについて

Back to archive index

内山敏郎 toshio_uchiy****@mirro*****
2017年 12月 5日 (火) 05:37:22 JST


須藤さま

 お世話になります。内山です。
再測定は、昨日の午後二時ごろには完了していたのですが、
会社からメールを書けずに、今になりました。

>PostgreSQLからデータを取得する方法を変えたところデータのコピー
>が数分で終わるようになりました。
>

ご対応ありがとうございます。

>次のPGroongaのリリースに入ります。
>リリース日は未定ですが。。。

リリースしていただけたら、再々測定して報告します。

 再測定の結果ですが

1レコードに、動画情報と字幕を一行一行入れたテーブル。
同じ動画の字幕について、字幕が100行とかあるので動画情報を重複して
テーブルに格納する必要がある。字幕に pgroonga のインデックスを作成
するのに 3分10秒(現在、この方法です)

1レコードに、動画全部の字幕を入れる。字幕は分割しない。
インデックス作成に2分30秒。

Jsonb を使って、1レコードに動画全部の字幕を入れる。字幕一行は
Jsonb の配列で分割して格納する。インデックス作成に7分

Text[] を使って、1レコードに動画全部の字幕を入れる。字幕一行は
Text[] で分割して格納する。インデックス作成に2分30秒。

となりました。

 再測定が必要となった原因のデータ投入プログラムのバグですが、
投入データの配列を、DBテーブルの1レコードごとに初期化
しなかったため、一度、字幕がたくさんある動画レコードを
格納した配列の後ろの方が、字幕の少ない動画について残っていました。
すなわち、ごみとして残ったデータを延々とDBテーブルに
投入していたことになります。

これにより、不必要な字幕のコピーとインデックス作成を
おこなっていたことになります。

須藤さまの O(n) の話に納得です。

お手を煩わせて、誠に申し訳ありませんでした。

今回の測定で、text[] を使うことにより、検索データの
データ量を増やせる可能性が見えてきました。

取り急ぎ、お礼まで。

-----Original Message-----
From: groon****@lists*****
[mailto:groon****@lists*****] On Behalf Of Kouhei Sutou
Sent: Monday, December 4, 2017 11:49 PM
To: groon****@lists*****
Subject: [groonga-dev,04554] Re: JSONB や 配列フィールドについての pgroonga
インデックス作成時間および、jsonb のフェッチについて

須藤です。

In <20171****@clear*****>
  "[groonga-dev,04553] Re: JSONB や 配列フィールドについての pgroonga イン
デックス作成時間および、jsonb のフェッチについて" on Sun, 03 Dec 2017 15:38:
16 +0900 (JST),
  Kouhei Sutou <kou****@clear*****> wrote:

> 私の手元で確認した感じだと圧縮は関係なくて、PostgreSQLから
> Groongaにデータをコピーしているところで遅そうでした。そう判
> 断した理由ですが、Groongaレベルでデータをコピーしたら数分で
> 終わったからです。PostgreSQLからGroongaへのコピーは確かに10
> 時間ちょいかかりました。

PostgreSQLからデータを取得する方法を変えたところデータのコピー
が数分で終わるようになりました。

PostgreSQLの配列はn番目の要素にアクセスするにはO(n)かかるん
ですね。1つずつn番目の要素にアクセスしているのをイテレーター
を使って順にアクセスするようにしたら普通の速さになりました。

次のPGroongaのリリースに入ります。
リリース日は未定ですが。。。


報告およびデータ提供ありがとうございました。

--
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
  http://www.clear-code.com/recruitment/
OSS開発支援サービス:
  http://www.clear-code.com/blog/2016/6/27.html

_______________________________________________
groonga-dev mailing list
groon****@lists*****
https://lists.osdn.me/mailman/listinfo/groonga-dev




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