我正在使用couchbase 2.0.1并使用:
OperationFuture<Boolean> set = client.set(keySesionCanal, 0, sesionCanal, CouchdbClient.TRANSCODER_SESION_CANAL);
logger.info( set.getStatus().getMessage() );
有时我收到错误消息:暂时失败
我很擅长使用couchbase而且我不确定发生了什么。 在couchbase日志中,我可以看到很多消息: “总内存使用达到了低水位,停止预热”
可能是原因吗?
另一个奇怪的日志是: “使用命令”opaque_enable_auto_nack“和vbucket 0”发送TAP_OPAQUE“ “TAP(生产者)eq_tapq:replication_ns_1@x.x.x.x - 暂停5.00秒”
这是什么意思?在哪里可以找到有关文档的文档?
答案 0 :(得分:1)
当您达到可用于缓存的内存量限制时,就会发生这种情况。群集将尝试释放内存(通过从RAM中弹出最近使用过的项目),但如果您向群集写入数据太快以至于在内存达到高水位之前释放内存,您可能会看到{{1错误 - 表示客户端应该退出并重试。这可以在Ejection, eviction and working-set managerment中的服务器端进行介绍。
具体处理方式取决于您使用的特定SDK,但开发人员指南中的Handling temporary out-of-memory errors下提供了一般信息。
请注意,低版本/高水印算法在后续版本中得到了改进,因此您可以更好地使用最新版本(2.0.1现在已经很老了)。