我有大约100-200k小文档,其中包含base64编码图像(非常小的图像)。我试图将所有这些文档插入Couchbase,并且在第一个28k文档(总大小约为185 Mb)之后我一直收到此错误
[Error: Client-Side timeout exceeded for operation. Inspect network conditions or increase the timeout] code: 23
以下是Couchbase设置的屏幕截图(我在这里只看到一个奇怪的事情 - 可用空间完全错误,实际上我的磁盘上有大约300GB的可用空间)
我的代码非常简单,看起来像这样
_.forOwn(data, function (data) {
var item_id = "item::" + uid().toString();
db.set(item_id, data, function(err, result) {
if (err) {
console.log('cb error', err);
}
else {
console.log('cb success', result);
}
});
});
我试图更改文档并使它们更小或更大 - 在28k数据库停止响应后,这并不重要。它在几秒钟内节省了28k,然后抛出超时。我该怎么做才能解决这个问题?
UPD
我安装了Couchbase 2.5 Enterprise,现在可以正确显示可用空间。但是我仍然无法通过28k限制。我正在运行Mac OS X 10.9.2。也许我应该尝试使用Python或Java SDK?
尝试在Ubuntu 14.04上安装Couchbase,现在在46k文档后出现相同的错误。
以下是图表的截图(两个峰显示了我将两个文件导入Couchbase的两次尝试)
答案 0 :(得分:5)
切换到couchbase协议并增加超时。
以下是从node.js连接到本地couchbase的示例:
callback = function(err)
{
if (err)
throw err;
}
var cluster = cluster = new couchbase.Cluster("couchbase://localhost/default");
var bucket = cluster.openBucket("default", callback);
bucket.operationTimeout = 60 * 1000; // 60 seconds operation timeout (LCB_CNTL_OP_TIMEOUT)
请注意“localhost:8091” - 仅限http协议 。
答案 1 :(得分:-5)
当我从nodejs sdk切换到python sdk时,这个问题就解决了。