【问题标题】:Couchbase temporary failureCouchbase 临时故障
【发布时间】:2014-06-20 08:58:32
【问题描述】:

我正在使用 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 秒"

这是什么意思?在哪里可以找到相关文档?

【问题讨论】:

  • 似乎是由于达到了 ramQuotaMB。 docs.couchbase.com/couchbase-manual-2.0/…(搜索临时故障)。我会监控日志,如果一切正常,这就是答案!
  • ramQuotaMB 未达到,我再次遇到同样的错误

标签: memcached couchbase


【解决方案1】:

当您达到可用于缓存的内存量的限制时,就会发生这种情况。集群将尝试释放内存(通过从 RAM 中弹出最近未使用的项目),但如果您将数据写入集群的速度太快,以至于它无法在达到高水位线之前释放内存,您可能会看到 TEMPFAIL错误 - 这表明客户端应该退出并重试。这在Ejection, eviction and working-set managerment 中从服务器端进行了介绍。

具体处理方式取决于您使用的特定 SDK,但一般信息可在开发人员指南中的 Handling temporary out-of-memory errors 下找到。

请注意,低/高水印算法在后续版本中得到了改进,因此您可能会对最新版本有更好的体验(现在 2.0.1 已经很老了)。

【讨论】:

  • 请注意,虽然 UI 以这种方式显示,但技术上没有 TEMP OOM。只有 TMPFAIL。它可能在其他情况下出现,例如在桶冲洗期间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2020-08-17
  • 2018-11-02
  • 1970-01-01
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多