我正在使用 Couchbase .NET SDK 1.3。
任务是存储一个值,前提是其键下的数据自读取值以来未在数据库中修改,并确保新值持久/复制到一定数量的节点。对于修改检查,我想利用乐观锁定,即 Couchbase 的 CAS 方法。我需要同步等待,直到值的持久性/复制成功。
问题是 Couchbase SDK 提供了指定CAS 值或持久性要求的方法:
ExecuteCas(mode, key, value, validfor, cas);
ExecuteStore(mode, key, value, persistTo, replicateTo);
我需要将两者结合起来。还有Observe
方法:
Observe(key, cas, persistTo, replicateTo);
似乎这是我需要的,但我在任何地方都找不到它的文档。因此,特别是,我无法确定该方法是否等待该值被持久化/复制,或者只是在调用时检查该值。像这样使用这种方法是否有效?
var storeResult = client.ExecuteCas(StoreMode.Set, key, value, TimeSpan.FromSeconds(60), cas);
// check storeResult.Success
var observeResult = client.Observe(key, cas, persistTo, replicateTo);
// check observeResult.Success