Может ли ruby ​​1.9 использовать несколько ядер для индексации данных в solr? - PullRequest
1 голос
/ 14 сентября 2011

У меня есть приложение ruby ​​1.9 rails 3.0.7, которое использует lucid / solr для индексации больших объемов текстовых данных (3 ГБ или около того).Данные хранятся в базе данных MongoDB и состоят в основном из электронных писем.

Одна из проблем, с которыми я сталкиваюсь, заключается в том, что я изначально пытаюсь проиндексировать все данные, когда устанавливаю приложение, чтобы найти его.Это процесс, который на самом деле будет повторяться довольно часто, поэтому мне нужно выяснить, как быстро и эффективно проиндексировать всю базу данных MongoDB в solr.Согласно документам Solr Docs, одним из основных способов ускорения процесса индексирования является использование нескольких ядер.Я запустил индекс на одноядерной виртуальной машине, и мне понадобилось около 1 часа, чтобы проиндексировать имеющиеся у меня данные.Когда я переместил его на 4-ядерную виртуальную машину и запустил ее, это заняло около 1 часа.Я не заметил какой-либо заметной разницы между 2.

. Это наводит меня на мысль, что, возможно, ruby ​​1.9 НЕ способен правильно использовать несколько ядер?Я использую Linux Ubuntu 10.10 VM.

Я прочитал несколько постов, в которых упоминается, что ruby ​​1.9 - это многоядерная функциональность, отличная от 1.8, но я признаю, что я не очень разбираюсь в этой области.

Кто-нибудь знает, действительно ли ruby ​​1.9 способен использовать преимущества нескольких ядер для индексации больших объемов данных в solr?

1 Ответ

1 голос
/ 14 сентября 2011

Согласно этому вопросу и этому , он может работать на всех ядрах, если поток освобождает нечто, называемое Giant VM Lock.

Так каквероятно, зависит от используемых вами гемов (и, следовательно, C-расширений), я бы посоветовал вам провести некоторое тестирование, чтобы убедиться, что оно на самом деле использует все ядра, а в случае, если он этого не делает, возможно, перейти на JRuby,который должен использовать все ядра OOB.

Я знаю, что это не окончательный ответ, но я надеюсь, что это поможет вам найти решение.

...