Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

データベースの容量が肥大化する #62

Closed
homuler opened this issue Mar 4, 2014 · 9 comments
Closed

データベースの容量が肥大化する #62

homuler opened this issue Mar 4, 2014 · 9 comments

Comments

@homuler
Copy link

homuler commented Mar 4, 2014

Milkodeを使用していたところ、検索対象ファイルのサイズが約500MBであるのに対し、Milkodeのデータベースが10GB程度になる事象が発生しました。

実施した手順は、以下の通りです。 1. データベースを初期化(milk init --setdb data) 2. Milkodeのデータベースに、約600MBのデータを追加(15000ファイル程度)。(milk add [ディレクトリ名])   (この時、データベース容量は466MB) 3. 追加したファイルを全て削除。 4. 検索インデックスを更新。(milk update [ディレクトリ名])

検索インデックスを更新中に、データベース容量の変化を監視したのですが、データベースのレコードが削除されても、データベースの容量は増加しているようです。

原因を突き止められてはいないのですが、可能性として、以下の2つを考えています。 1. Milkodeは、データ構造としてPatricia Trie(ツリー構造)を使用している。  インデックスを保存するファイルの最大サイズが1GBであるため、データ容量が1GBを超えると、新たなファイルが作成されるが、その際、ツリー構造の大部分が複製されてしまう。 2. レコードが削除される際にも、データベースの容量が増加するようになっている。  ファイルの大規模な削除等が行われると、その際にデータベースが増加する容量が大きくなり、1GBを超えたところから、1の理由で、容量が爆発的に増加する。

本件について、何か対策はありませんでしょうか。また、こちらの設定の問題も考えられるので、原因をご存じでしたら、教えていただけないでしょうか。

(現在は、データベースを初期化し、再度データを追加することで対応しています。) よろしくお願いします。

@ongaeshi
Copy link
Owner

ongaeshi commented Mar 4, 2014

報告ありがとうございます。調査してみます。

さしつかえなければお使いの環境(OSの種類やRubyのバージョンなど)を教えてもらえないでしょうか?

@homuler
Copy link
Author

homuler commented Mar 4, 2014

OSはRHEL6.3で、Rubyは2.0.0-p353を使用してます。
また、groongaのバージョンは3.1.1で、Milkodeのバージョンは1.4です。

@ongaeshi
Copy link
Owner

ongaeshi commented Mar 4, 2014

ありがとうございます、まずは手元のOSXで再現するかどうか調べてみようと思います。

@ongaeshi
Copy link
Owner

中間報告&情報共有です。

http://sourceforge.jp/projects/groonga/lists/archive/dev/2014-March/002175.html

にてGroongaデータベースの容量増加について議論されています。
この問題が直ればMilkodeでも状況が改善するのではないかと期待しています。

http://www.clear-code.com/blog/2014/3/13.html

の記事が図入りで分かりやすいです。

@homuler
Copy link
Author

homuler commented Mar 25, 2014

情報ありがとうございます。
なるほど、Groonga側の課題であったのですね。

@ongaeshi
Copy link
Owner

Rroonga 4.0.1 がリリースされました。

最新のRroongaにバージョンアップすることで
データベースの肥大化が抑制されるのではないかと思います。

バージョンアップすると、古いバージョンのGroongaで開けなくなるためご注意下さい。
また、肥大化を抑制するためには一度データベースを作り直す必要があります(milk rebuild --all)

詳しくは、以下をご覧下さい。

http://groonga.org/ja/blog/2014/03/29/release.html

報告ありがとうございました。

@kazuna
Copy link

kazuna commented Apr 14, 2014

gem.bat install rroonga --platform x86-mingw32
と、Windows上で実行し4.0.1をインストールしてからデータベースを作り直してみました。
確認をしたいのですが、4.0.1が使用されていると確認する方法はございますでしょうか?

@ongaeshi
Copy link
Owner

すいません、データベースのバージョンを確認する方法は私も把握していません…。

代わりに http://qiita.com/ongaeshi/items/3e7764fc594f71497a85 で現状使われているライブラリのバージョンを確認しています。bundlerとかを使っていなければこれで'4.0.1'を確認して作り直せば大丈夫だと思います。 ※ 場合によってはインストール後に再起動などしないと変わらないかもしれません。

@kazuna
Copy link

kazuna commented Apr 14, 2014

教えて頂いた方法で4.0.1と確認できました。ありがとうございました。

@homuler homuler closed this as completed Sep 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants