2

当 couchbase 服务器响应 set 命令时:

  • 当数据保存到单个(主)节点时
  • 当数据保存到所有节点时
4

2 回答 2

5

答案会因您使用的客户端库而略有不同。但一般来说,调用 set 的肯定结果仅意味着客户端和服务器之间没有 I/O 或其他错误。在这种情况下,对于给定的密钥,数据应该安全地保存在主节点的内存中。

在 2.0 中,Couchbase Server 和各自的客户端库将支持 Observe 方法,这将允许进行持久性检查。调用观察,您将能够提出以下问题:

  • 其主节点上是否有内存中的密钥?
  • 密钥是否保存在其主节点上的磁盘上?
  • 密钥是否已在内存中复制?
  • 是否已将密钥持久保存到其副本?

有关观察的更多信息,请参阅http://www.couchbase.com/wiki/display/couchbase/Observe

还有一点,只是为了确保清楚...... Couchbase 集群中的节点在职责方面都是对等的,但在密钥和这些密钥的复制方面具有主/从关系。换句话说,键“foo”有一个主节点,但可以作为该键的从属副本复制到其他节点。

于 2012-08-27T17:29:15.540 回答
0

Couchbase 的默认行为是它只会将数据写入主节点。对其他副本节点的写入以对等通信方式异步发生。此外,实际上在主节点中,数据仅在执行写入操作时才写入缓存(RAM)(稍后会被持久化)。

于 2017-04-10T06:33:44.090 回答