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!