Карта Mongodb уменьшить на многоядерном сервере

У меня есть mongodb с тысячами записей с очень длинными векторами. Я ищу корреляции между входным вектором с моим набором данных MDB, используя определенный алгоритм.

псевдокод:

function find_best_correlation(input_vector)
    max_correlation = 0
    return_vector = []
    foreach reference_vector in dataset:
        if calculateCorrelation(input_vector,reference_vector) > max_correlation then:
            return_vector = reference_vector
    return return_vector

Это очень хороший кандидат для схемы уменьшения карты, так как мне не важен порядок выполнения вычислений.

Проблема в том, что моя база данных находится на одном узле. Я хотел бы запустить много отображений одновременно (у меня 8-ядерный компьютер)

Насколько я понимаю, MongoDb использует только один поток выполнения для каждого узла - на практике я запускаю свой набор данных последовательно. Это правильно?

Если да, могу ли я настроить количество процессов / потоков на один прогон карты? Если я буду управлять несколькими потоками, выполняющими map-Reduction параллельно, а затем объединю результаты, получу ли я существенное повышение производительности (кто-нибудь пробовал)? Если нет - могу ли я иметь несколько копий моей БД на одном узле и "трюк"? mongoDb для запуска на 2 репликации?

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос