タグ

ブックマーク / blog.yux3.net (1)

  • MySQLの外の世界も含んだトランザクション - 角待ちは対空

    トランザクションとは一般的な不可分な一連の処理という意味で使っているが、例えばS3に画像データをアップロードしMySQLにはそのキーを保存したいみたいな場合の話。 MySQLへの書き込みだけであればそれこそMySQL(ストレージエンジンか)に備わっているトランザクション機能を使えば良い。しかしながらS3のバケットの状態とも整合性を取りたいとなると少しむずかしい。S3へのアップロードは失敗するかもしれないし、失敗したのを検知して復帰処理を書いたとしてもそれが失敗するかもしれない。 簡単のためS3に画像をアップロードしテーブルに1レコード挿入することを考える。実際のアプリケーションでは非同期でやりたいこともあれば同期的に処理で十分な場合もあるが、簡単のため後者を考える。キーはuuid()とする。 このシチュエーションで考えられる作戦は (MySQLの)トランザクションを張り、その中でS3へアッ

    MySQLの外の世界も含んだトランザクション - 角待ちは対空
  • 1