1
2つのだけの操作が必要です。キー/値ストアは並行性をどのように管理しますか?私は、キー値ストアを明記の記事の数を読みました
set(key, value)
get(key)
をこれは、単一のプロセスのための罰金ですが、複数のプロセスを持っているとき、キー値ストアは並行性をどのように管理しますか? compare-and-swapスタイルの並行処理が必要なバージョン番号(たとえば、符号なし整数)が考えられました。例えば、2つの操作が次のようになります。
set(key, value, version)
version
が条件であり、 - 不一致が同時実行エラーが発生し、成功したマッチが増加の原因となります。get(key)
(value
とversion
の両方を返します)。
ほとんどのキー/値構造体は、すべての操作でスレッドセーフではありません。データ競争を避けることはユーザーの責任です。 – iamnoten
ミューテックスなどを使用してデータ競合を回避しますか?これは、共有されたKVストアを持つ別々のマシンからは不可能です。 – magnus
共有KVストアの場合、データベースのように機能し、通常はレース処理メカニズムが異なります。特定の文書を確認する必要があります。あなたのバージョン番号の解決策はその1つかもしれませんが、実際の実装はより複雑です。 – iamnoten