我们刚刚将应用程序运行时日志数据库从MySQL转换为CouchDB.有大约3M文档转换,占用约7GB.
然后我们编写了第一个视图(使用reduce函数)并执行了一个查询来调用该视图的第一次运行,创建一个视图创建/生成.它应该需要一些时间,我只是在该机器上做了一个"顶部"来查看进程/ CPU加载的东西.我刚注意到有两个沉重的过程:
beam.smp
couchjs
Run Code Online (Sandbox Code Playgroud)
有趣的是,它们似乎占据了一个核心,即使该机器上有4个核心.在创建/更新视图时,是否可以使couchdb使用多个核心?
目前不支持此功能.我的猜测是,良好的多核支持会增加CouchDB的复杂性.
到目前为止,CouchDB总是选择简单而不是功能.(你知道CouchDB只有18,000行代码吗?与MySQL中的100万或SQLite中的100,000相比.)
在构建设计文档视图索引时,它使用一个couchjs进程.如果您有多个设计文档,那么这些文档将并行运行.CouchDB将为couchjs每个设计文档生成一个进程,操作系统将它们分布在多个核心上.
但是,如果您确实需要性能,BigCouch与Apache CouchDB兼容,并且支持使用过度扩展的体系结构构建并行化视图索引.