Amazon S3、Put-If-Match(Compare-and-Swap)機能を追加
(aws.amazon.com)-
Amazon S3の新機能: 条件付き書き込み
-
Amazon S3は、オブジェクトが変更されていないかを評価したうえで更新を行う条件付き書き込みを実行できるようになりました。これにより、同一オブジェクトに対する同時書き込みの調整が可能になり、複数の同時書き込み元がオブジェクトの内容を把握しないまま意図せず上書きしてしまうことを防ぐのに役立ちます。
-
この機能は、S3汎用バケットとディレクトリバケットの両方で、オブジェクトのETagを指定した S3 PutObject または CompleteMultipartUpload API リクエストを通じて利用できます。
-
条件付き書き込みは、複数のクライアントが共有データセットを同時に更新する分散アプリケーションの実装を簡素化します。HTTP
if-none-match条件付きヘッダーを使って、オブジェクト作成前にその存在を確認するのと同様に、クライアントは今後、APIリクエスト内の HTTPif-matchヘッダーでオブジェクトのETagを指定することで、条件付き書き込みチェックを実行できます。 -
S3は、オブジェクトのETagがAPIリクエストで指定された値と一致するかを評価したうえで書き込みを確定し、条件が満たされるまでクライアントがオブジェクトを上書きできないようにします。
-
この新しい条件付きヘッダーは、大規模分析、分散機械学習、その他の高度に並列化されたワークロードの効率改善に役立つ可能性があります。
-
この新しい条件付き書き込み機能は、すべてのAWSリージョンで追加料金なしで提供されます。AWS SDK、API、または CLI を使用して条件付き書き込みを実行できます。条件付き書き込みの詳細については、S3ユーザーガイドを参照できます。
-
1件のコメント
Hacker Newsの意見
Amazon S3に、条件付き書き込み操作を強制できる機能が追加された
Turbopuffer.comは、オブジェクトストレージ以外の依存関係を避けるため、これをデータベースで使ってきた
強力な一貫性によって、望んでいた機能の半分はすでに達成されていた
この機能がなぜ重要なのか理解しにくい人もいる
これはcompare-and-swapよりも、compare-and-setに近い
読み取り後書き込み一貫性の保証と組み合わせると、オブジェクトストレージ上に増分追加専用ストレージを構築するための完璧な基盤になる
Azure Blob Storageもe-tagと楽観的制御をサポートしている
AWSのデフォルトのETagアルゴリズムが単なるMD5ハッシュである場合、MD5衝突によってオブジェクトデータが失敗する可能性があるのではないかと疑問視している
Amazon S3のオープンソース実装であるMinIOは、ほぼ2年前からこの機能を提供していた
s3fsのIfNoneMatch機能への反応として、この夏に新機能が追加された