繁体   English   中英

ouchdb视图os_process_error-大文档

[英]couchdb views os_process_error - big documents

我有一个数据库,我们正在填写其中的文件,其中一些文件大小为10 KB,其中一些文件大小约为70 MB。

任何试图加载这些大文档的视图都会失败,并显示以下错误: {“ error”:“ os_process_error”,“ reason”:“ {exit_status,0}”} ,即使是以下基本视图

function(doc) {
    emit(null, "test");
}

os_process_error设置为35000,但是调用视图会在约15秒内死亡:

time curl -X GET http://localhost:5984/portal_production/_design/all_data_keys/_view/view1
{"error":"os_process_error","reason":"{exit_status,0}"}

real    0m15.907s
user    0m0.016s
sys 0m0.000s

从其他几个线程来看,这似乎与堆栈大小有关: benchdb issue thread 尽管找不到该方法的值的引用,但我已应用此补丁来增加堆栈大小。 所以我在黑暗中射击。

如此……真正的问题是:在大型文档上使用视图的正确方法是什么? 我确定我不是第一个遇到此问题的人。

您将达到couchjs堆栈大小限制。 如果您使用的是CouchDB 1.4.0+,则默认情况下,其大小受64 MiB限制。 您可以通过在CouchDB配置中为JavaScript查询服务器指定-S <number-of-bytes>选项来增加它。 例如,要将堆栈大小设置为128 MiB,您的配置值将如下所示:

[query_servers]
javascript = /usr/bin/couchjs -S 134217728 /usr/share/couchdb/server/main.js

请注意,根据您的操作系统, /usr/bin/couchjs可能与您有所不同。 添加此更改后,您需要重新启动CouchDB。

如果您尝试通过HTTP API更新JavaScript查询服务器配置,请确保从shell中kill所有couchjs进程,以使它们应用更改。

如果您的CouchDB版本小于1.4,请尝试首先升级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM