我可以在商店运营中一起指定CAS值和耐久性要求吗?

时间:2014-11-28 16:00:06

标签: c# .net couchbase cas durability

我正在使用Couchbase .NET SDK 1.3。

任务是存储一个值,前提是自从读取了值以来DB中的数据没有被修改,并确保新值被持久化/复制到一定数量的节点。对于修改检查,我想利用乐观锁定,即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

1 个答案:

答案 0 :(得分:1)

在官方论坛上得到答案:https://forums.couchbase.com/t/2199

实际上,可以使用Observe方法。它将一直阻塞,直到值被持久化/复制。