Параллельное / многопоточное программирование на Ruby для чтения огромной базы данных

У меня есть Ruby-скрипт, который читает огромную таблицу (~ 20 миллионов строк), выполняет некоторую обработку и передает ее в Solr для индексирования. Это было большим узким местом в нашем процессе. Я планирую ускорить процесс и хочу добиться некоторого параллелизма. Меня смущает многопоточность Ruby. На наших серверах установлена ​​ ruby ​​1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux] . Из этого сообщения в блоге и этого вопроса на StackOverflow видно, что Ruby не имеет «настоящего» многопоточного подхода. Наши серверы имеют несколько ядер, поэтому использование параллельного гема кажется мне другим подходом.

Какой подход мне выбрать? Кроме того, будут высоко оценены любые вводные данные о системах параллельного чтения и подачи баз данных.

6
задан Community 23 May 2017 в 11:53
поделиться