2011-09-14 7 views
1

大量のテキストデータ(3GB程度)を索引付けするためにlucid/solrを使用しているruby 1.9 rails 3.0.7アプリケーションがあります。データはMongoDBデータベースに保存され、主に電子メールで構成されます。ruby​​ 1.9はsolrのデータを索引付けするために複数のコアを使用できますか?

私が抱えている問題の1つは、アプリケーションを確立するときに最初にデータ全体をインデックスに登録して検索できるということです。これは実際にはかなり頻繁に繰り返されるプロセスなので、MongoDBデータベース全体を素早く効率的にソルバーにインデックスする方法を理解しなければなりません。 solrドキュメントによると、インデックス作成プロセスを迅速化する主な方法の1つは、複数のコアを使用することです。私は単一のコアVM上でインデックスを実行し、私が持っているデータをインデックスするのに約1時間かかった。私はそれを4コアのVMに移動して実行したところ、約1時間もかかりました。私は2との間に明らかな違いがないことに気付きませんでした。

これは、私がruby 1.9が複数のコアを適切に使用できない可能性があると考えていますか?私はLinuxのUbuntu 10.10 VMを使用しています。

私はruby 1.9について言及したいくつかの記事を読んだが、1.8よりも異なるマルチコアの機能性を持っているが、これは私が非常に精通している領域ではないことを認めている。

ruby​​ 1.9が実際にsolrの大量のデータを索引付けするために複数のコアを利用できるかどうかは知りませんか?

答えて

1

this questionthisによれば、スレッドがGiant VM Lockと呼ばれるものを解放する限り、すべてのコアで実行できます。

これはおそらく使用している宝石(したがってC拡張)に依存するので、実際にすべてのコアを使用しているかどうかを確認するテストを行うことをお勧めします。 JRubyに移動すると、すべてのコアOOBを使用する必要があります。

これは確定的な回答ではないことがわかりますが、解決策を見つけるのに役立つことを願っています。

+0

笑、あなたは*グローバル*ロックを意味しませんでしたか? – adrian

+0

いいえ、私はちょうどそれが両方の方法で呼ばれていることに気付きました:D - [Giant VM Lock](http://www.google.co.uk/search?q=giant+vm+lock)on google:あなたは見ることができますInfoQとArtimaの投稿はそういう形で呼びます。私はそれが本当に巨人であることに同意できると思う:D – Augusto

関連する問題