If you are using normal KV methods (
get()) etc, then any change made by an upsert should be immediately visible via a get in another machine.
While Couchbase does have consistency options, the options are only intended for:
- Fault tolerance (i.e. replication and persistence, so if the active node for an item goes away, the replica is certain to contain the exact same data)
- For communication across different Couchbase systems (for example, between KV and query index)
The fault tolerance scenario in your case does not apply, since it appears that a node has not failed. The cross-subsystem scenario does not apply either since you are using the same subsystem (KV or Memcached) for both.
Whatever is happening in your case is a result of application error, meaning that somehow you are causing the key to be removed before the second get is performed. Do check that:
- All machines are connected to the same bucket and cluster
- If using expiration, ensure the item hasn’t yet expired
- The key is not explicitly being removed from the cluster