ruby 1.9是否能够使用多个内核来索引solr中的数据?

时间:2011-09-14 15:32:02

标签: ruby solr indexing multicore

我有一个ruby 1.9 rails 3.0.7应用程序,它使用lucid / solr索引大量文本数据(3GB左右)。数据存储在MongoDB数据库中,主要包含电子邮件。

我遇到的一个问题是,当我建立应用程序时,我正在尝试索引整个数据,以便我可以搜索它。这个过程实际上会经常重复,因此我必须弄清楚如何快速有效地将整个MongoDB数据库索引到solr中。根据solr文档,加快索引过程的主要方法之一是使用多个核心。我在一个单核VM上运行了索引,我花了大约1个小时来索引我的数据。当我将它移动到4核VM并运行它时,它也花了大约1个小时。我没注意到2之间有任何明显的区别。

这让我怀疑ruby 1.9可能无法正确使用多个核心?我正在使用Linux Ubuntu 10.10 VM。

我读过一些帖子,提到ruby 1.9是一个不同于1.8的多核功能,但我承认这不是我非常了解的领域。

有没有人知道ruby 1.9是否确实能够利用多个内核来索引solr中的大量数据?

1 个答案:

答案 0 :(得分:1)

根据this questionthis,它可以在所有核心上运行,只要该线程释放出名为Giant VM Lock的东西。

由于这可能取决于您正在使用的gem(以及C扩展),我建议您进行一些测试以检查它是否实际使用了所有内核,并且在它没有这样做的情况下,也许转移到JRuby,它应该使用所有核心OOB。

我知道这不是一个明确的答案,但我希望它可以帮助您找到解决方案。