0

.NET カウチベース クライアントを拡張して、いくつかの追加機能 (トランザクションに類似したもの、またはロールバック) を追加しています。私のレーダーの 1 つは、レコード ロックのサポートです。

CAS 値を持たない更新を防止するチェック アンド セットを認識していますが、私がやろうとしているのは、couchbase の getlock 機能を使用してダーティ リードを防止することです (これは Python クライアントで利用できるため、おそらく.NET クライアントではなく、サーバー)

私が最初に考えたのは、REST API で利用できるのではないかということでしたが、調査を行った結果、API はビューのクエリにしか使用できないようです。memcached に telnet インターフェースがあることは承知していますが、そこで利用できることを望むのはおそらく多すぎます。サーバー側で電話をかけるだけの簡単なものであれば、すでにクライアントにあると思います...

リース アウトモデルを使用することもできますが、機能が手の届かないところにある場合は、そのルートをたどらないことをお勧めします。

4

1 に答える 1

0

現在、Getl サポートは .NET クライアントに実装されていません (2013 年 2 月 20 日) が、間もなく追加される予定です ( http://www.couchbase.com/issues/browse/NCBC-231 )。また、注意すべきことの 1 つは、getl は他の接続による読み取りを防止するのではなく、他の接続によるロックされたキーへの書き込みを防止するだけであるということです。

また、Couchbase ではレプリカ サーバーからの読み取りが許可されていないため、ダーティ リードを防止しようとしている理由がよくわかりません。つまり、すべての読み取りは常に Couchbase の最新の値を返します。

*注: Couchbase にはレプリカ読み取り API がありますが、これを呼び出すことで、古いアイテムを取得してもよいことを明示的に示しています。

于 2013-02-20T21:06:59.300 に答える