MongoDB MapReduce是否锁定数据库

Jou*_*man 10 mapreduce mongodb

MongoDB MapReduce作业是否锁定数据库?我正在开发一个多用户MongoDB Web应用程序,我担心多用户冲突和性能.有没有人对我有任何智慧的话语?

Jus*_*ins 7

简单回答?有时......

这很大程度上取决于你如何使用map/reduce ......但根据我的经验,它从来都不是问题.

关于这方面的信息并不多,但是在文档中明确指出有时会锁定但是"允许大量并发操作".

有一对夫妇的MongoDB的用户组中的问题,询问这个...我见过的最好的回应offically是......"在1.4中产生,但不是一样好,因为它应该是在1.5的对其他请求更友好."

这并不意味着它根本不会阻塞,而是与阻止整个mongod进程的 db.eval()相比......这是你最好的选择.

也就是说,在1.7.2及更高版本中,现在有一个db.eval()的nolock选项......

  • 但请记住,最重要的问题是被掩盖:MapReduce锁定整个Javscript Context,其中每个mongod只有一个.因此,您无法在单个MongoDB服务器上运行多个同时MapReduce作业; 小心使用它作为查询机制. (6认同)