mapa mongodb zmniejsza się na serwerze wielordzeniowym

Mam mongodb z tysiącami rekordów zawierających bardzo długie wektory. Szukam korelacji między wektorem wejściowym a moim zestawem danych MDB przy użyciu pewnego algorytmu.

kod psudo:

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

Jest to bardzo dobry kandydat na wzór zmniejszania mapy, ponieważ nie obchodzi mnie kolejność, w jakiej obliczenia są wykonywane.

Problem polega na tym, że moja baza danych znajduje się w jednym węźle. Chciałbym uruchomić wiele mapowań jednocześnie (mam maszynę 8-rdzeniową)

Z tego, co rozumiem, MongoDb używa tylko jednego wątku wykonania na węzeł - w praktyce używam zestawu danych seryjnie. Czy to jest poprawne?

Jeśli tak, czy mogę skonfigurować liczbę procesów / wątków na jeden cykl zmniejszania mapy? Jeśli zarządzam równolegle wieloma wątkami działającymi na mapie, a następnie agreguję wyniki, czy będę miał znaczny wzrost wydajności (czy ktoś próbował)? Jeśli nie - czy mogę mieć wielokrotne replikacje mojego DB na tym samym węźle i „trick” mongoDb, aby uruchomić w 2 replikacjach?

Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion