簡體   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