MongoDB文档翻译-Map Reduce的并发
2017-03-15 22:25
357 查看
英文原文地址:https://docs.mongodb.com/v3.2/core/map-reduce-concurrency/。
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。
在操作中,map-reduce使用以下几种锁:
读阶段使用读锁。每次产生100个文档。
插入到临时集合时,对单个写操作使用写锁。
如果输出集合不存在,创建输出集合的操作采用写锁。
如果输出集合已存在,输出动作(合并、替换、归约)采用写锁。这个写锁是全局的,阻塞在
注意:
在后处理过程中,最终的写锁使得结果看起来是原子的。然而,输出操作merge和reduce可能需要几分钟。对于merge和reduce,可以使用nonAtomic标志,在写入每个输出文档之间释放锁。更多信息请查看
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。
Map-Reduce的并发
map-reduce由很多任务组成,包括从输入集合读取数据,执行map函数,然后执行reduce函数,处理过程中写入到临时集合,写入到输出集合。在操作中,map-reduce使用以下几种锁:
读阶段使用读锁。每次产生100个文档。
插入到临时集合时,对单个写操作使用写锁。
如果输出集合不存在,创建输出集合的操作采用写锁。
如果输出集合已存在,输出动作(合并、替换、归约)采用写锁。这个写锁是全局的,阻塞在
mongod实例上的所有操作。
注意:
在后处理过程中,最终的写锁使得结果看起来是原子的。然而,输出操作merge和reduce可能需要几分钟。对于merge和reduce,可以使用nonAtomic标志,在写入每个输出文档之间释放锁。更多信息请查看
db.collection.mapReduce()参考。
相关文章推荐
- MongoDB文档翻译-Map Reduce与分片集合
- MongoDB官方文档翻译系列之 -- 索引交集
- MongoDB文档翻译-聚集管道
- LLVM官方文档翻译---- LLVM原子指令与并发指引
- MongoDB文档翻译-引言-数据库和集合
- MongoDB文档翻译-聚集-聚集管道优化
- MongoDB索引文档翻译(一)
- MongoDB文档翻译-引言-文档
- MongoDB文档翻译-CRUD操作-SQL与MongoDB对应表
- MongoDB文档翻译-聚集-聚集管道与分片集合
- MongoDB文档翻译-聚集-对用户的爱好进行聚集
- MongoDB文档翻译-调试Map函数
- MongoDB文档翻译-调试Reduce函数
- MongoEngine文档翻译__新手教程(一)安装MongoEngine&连接MongoDB
- MongoDB用户和角色管理(源自对官方文档的翻译并总结——Manage Users and Roles)
- MongoDB官方文档翻译系列之 -- 执行二阶段提交
- MongoDB文档翻译-CRUD操作-插入文档
- MongoDB文档翻译-Map Reduce示例
- MongoDB文档翻译-mongo Shell-使用mongo Shell帮助
- MongoDB文档翻译-CRUD操作-查询文档