DynamoDBの条件付き書き込み

  • デフォルトでは、動作(書き込みDynamoDBのPutItemUpdateItem および  DeleteItem)は、無条件:各オペレーションは、指定されたプライマリ・キーを持つ既存のアイテムを上書きします。
  • DynamoDBの条件付き書き込みが選択的にこれらの操作をサポートすることができます。プロパティは、1つ以上の条件が期待されている満たしている場合にのみ、条件付き書き込みは、プロジェクトが成功するでしょう。それ以外の場合はエラーを返します。非常に便利な多くの場合、条件付き書き込み。たとえば、あなたがしたい場合があります  PutItem 、同じ主キーを持つプロジェクトの存在下で、正常に動作することはまだできません。これらの項目の一つは、プロパティの特定の値を持っている場合は、あなたは防ぐことができ  UpdateItem 、プロジェクトを変更する操作を。
  • 条件付き書き込み、複数のユーザーが同じプロジェクトを変更しようとする場合に便利。二人のユーザ(アリスとボブは)同じプロジェクトDynamoDBのテーブルの上に作業している次の図を、考えてみましょう。

条件付き書き込み冪等

条件のチェックが同じプロパティに更新する場合は、条件付き書き込みが可能な冪等  で。これは、プロパティ値の要求であなたと特定の項目は、彼らが期待している値と一致する場合にのみとき、DynamoDBのが唯一与えられた書き込み要求を実行することを意味します。

たとえば、あなたが送ったとし  UpdateItem たプロジェクトの3つの増分を増加させるための要求を  Price、唯一  Price 現在、20のためにこれを行います。リクエストを送信するが、結果はまだ返却されていない間の時間では、ネットワークエラーが発生した、あなたは要求が成功したかどうかわかりません。この条件が冪等書かれているので、あなたが同じ再試行することができ  UpdateItem 、要求を、DynamoDBのが唯一のでしょう  Price 、現在のプロジェクトが20に更新します。

 

冪等とは何ですか

つのプライマリと複数のリソース要求:HTTP / 1.1は、それがあるべき等と定義されているリソース自体には、(ネットワークタイムアウトの問題を除いて)同じ結果を持っている必要があります。換言すれば、その複数の実行のいずれかは、それ自体に有するリソースの影響一度同じ衝撃を用いて実施しました

方法は、N> 0の同一の要求の副作用が単一のリクエストと同じである(余談エラーまたは有効期限の問題から)という点で、「冪等性」の性質を有することができます。

我々はいくつかのポイントに焦点を当てるべきです:

  1. 冪等だけではなく1つ(または複数)のリソースに悪影響要求しない(例えばデータベース操作を照会として、無付加および欠失を、したがってデータベースへの影響はありません)。

  2. 初めての冪等も副作用を生成するために、リソースの要求が含まれていますが、多くの後続の要求は、資源への悪影響をもたらすことはありません。

  3. べき等の懸念はむしろ結果に焦点を当てるよりも、生成されたリソースを繰り返し要求した後、副作用かどうかです。

  4. ネットワークタイムアウトやその他の問題は、議論を冪等ではありません。

冪等(そして達成しない)限り、成功したコール・インターフェースへのコミットメントとして、システムに外部からの衝撃に複数のコールが一致しているコミットメント外部システムサービスです。宣言された冪等のサービスコールは、規範の外側を考える失敗し、失敗した後そこに再試行する必要があります。

おすすめ

転載: www.cnblogs.com/cloudrivers/p/11618585.html