【问题标题】:Is ruby 1.9 capable of using multiple cores for indexing data in solr?ruby 1.9 是否能够使用多个内核在 solr 中索引数据?
【发布时间】:2011-09-14 15:32:02
【问题描述】:

我有一个 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 虚拟机。

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

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

【问题讨论】:

    标签: ruby solr indexing multicore


    【解决方案1】:

    根据this questionthis,它可以在所有内核上运行,只要线程释放了一个叫做Giant VM Lock 的东西。

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

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

    【讨论】:

    • 不,但我刚刚意识到它以两种方式调用 :D - google 上的Giant VM Lock:您可以在 InfoQ 和 Artima 中看到帖子以这种方式调用它。我想我们可以同意它确实是巨人:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多