S3 によるロック 質問する

S3 によるロック 質問する

S3 と組み合わせて使用​​するシンプルなロック メカニズムを実装するための推奨方法は何ですか?

私がやりたいことの例:

  • オブジェクトIDでロックを取得する
  • S3からオブジェクトを読み込む
  • データを変更する
  • S3にオブジェクトを書き込む
  • ロックを解除する

理想的には、クラウド ベースのロック メカニズムを探しています。ローカルで memcached を使用することもできますが、その場合はスケーリングに対処する必要があります。AWS API を使用して軽量ロックを実装する明白な方法はわかりませんが、よくある問題のようです。

SimpleDB を使用してアトミック ロック取得操作を実行できるかどうか疑問に思います。誰か試したことがありますか?

ベストアンサー1

さて、今朝は boto で遊んでみましたが、SimpleDB で機能するソリューションが見つかったと思います。条件付き puts と一貫性のある読み取りがサポートされるように、最新の boto リリースが必要です。

サンプルコードはこちら:http://pastebin.com/3XzhPqfY

コメントや提案を投稿してください。このコードはかなり安全であるはずです。main() のテストでは 10 個のスレッドで試しています。

私がまだ触れていないことの 1 つは、S3 の読み取りが一貫していない (そうですよね?) ため、理論的にはスレッドが S3 値の古いコピーで動作している可能性があるということです。ここで説明されているように、これに対する回避策があるようです。

http://www.shlomoswidler.com/2009/12/read-after-write-consistency-in-amazon.html

おすすめ記事