Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Mongo是否支持多线程?_Ruby_Mongodb - Fatal编程技术网

Ruby Mongo是否支持多线程?

Ruby Mongo是否支持多线程?,ruby,mongodb,Ruby,Mongodb,每当我受到CPU限制(在SSD上运行)时,我看到Mongo在我的机器上只使用一个CPU。我有8个。Mongo有可能利用这一点吗?最好是ruby,如果不是,我可以很容易地转换 使用MongoDB 2.2(Mozilla的SpiderMonkey)中当前的javascript引擎,mongod进程中一次只有一个线程执行javascript,因此包括map/reduce和aggregations在内的JS操作将锁定在单个线程中。您可以通过插入hadoop适配器来执行并发映射/缩减。不使用javascr

每当我受到CPU限制(在SSD上运行)时,我看到Mongo在我的机器上只使用一个CPU。我有8个。Mongo有可能利用这一点吗?最好是ruby,如果不是,我可以很容易地转换

使用MongoDB 2.2(Mozilla的SpiderMonkey)中当前的javascript引擎,mongod进程中一次只有一个线程执行javascript,因此包括map/reduce和aggregations在内的JS操作将锁定在单个线程中。您可以通过插入hadoop适配器来执行并发映射/缩减。不使用javascript的I/O操作可以在遵守v2.2中引入的某些规则的同时并发运行,因此可以以有限的方式实现并行性。如果运行mongos(),可以获得更好的并发性,但一般来说,在单个mongod进程中,只能使用一个线程。

您的意思是,一次操作不使用多个线程,但如果运行十个并发查询,它们可以并发进行,否?MongoDB 2.2及更早版本默认使用Mozilla的JavaScript引擎。如前所述,只有一个线程将执行JavaScript,但MapReduce之类的操作会允许。您链接的服务器问题指的是谷歌JavaScript引擎即将发生的变化。注意:您已经可以了,但这并不一定能保证更高的性能。2.3开发周期的一些最终修复和测试正在进行中(请参阅,在这之后,V8应该成为默认的JavaScript引擎。@Stennie感谢SpiderMonkey的提醒,我从中获取了V8链接,该链接显然已过时。我在education.10gen的M102上从MapReduce视频中引用了map/reduce和聚合线程。com@Snez:并发页面并没有过期,但我希望是并发页面您指的是从该页面到SERVER-4258的链接,其中提到了V8多线程的改进。集成V8的工作一直在进行中,正如我在前面的评论中所指出的,V8自2.1开发周期以来一直是一个新的版本。本文应该回答您的问题:Ruby如何适应它?是否要对c多线程客户端代码?如果Mongo不能,我可以在客户端进行多线程攻击。另请参阅:。