gpt4 book ai didi

multithreading - 多核服务器上的 mongodb map reduce

转载 作者:可可西里 更新时间:2023-11-01 09:11:01 31 4
gpt4 key购买 nike

我有一个包含数千条记录的 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

这是 map-reduce 模式的一个很好的候选者,因为我不关心计算的运行顺序。

问题是我的数据库在一个节点上。我想同时运行多个映射(我有一个 8 核机器)

据我了解,MongoDb 每个节点只使用一个执行线程 - 实际上我是串行运行我的数据集。这是正确的吗?

如果可以,我可以配置每次 map-reduce 运行的进程/线程数吗?如果我管理多个并行运行 map-reduce 的线程,然后汇总结果,我的性能是否会大幅提高(有人试过吗)?如果不是 - 我可以在同一个节点上多次复制我的数据库并“欺骗”mongoDb 在 2 个复制上运行吗?

谢谢!

最佳答案

MongoDB 中的 Map reduce 使用单线程 Javascript 引擎 Spidermonkey,因此无法配置多个进程(也没有“技巧”)。有一张使用多线程 JS 引擎的 JIRA 票证,您可以在此处关注: https://jira.mongodb.org/browse/SERVER-2407

如果可能,我会考虑研究新的聚合框架(在 MongoDB 2.2 版中可用),它是用 C++ 而不是 Javascript 编写的,并且可能会提供性能改进: http://docs.mongodb.org/manual/applications/aggregation/

关于multithreading - 多核服务器上的 mongodb map reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11748872/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com