タグ

トランザクションに関するdencygonのブックマーク (8)

  • tree-tips: MySQLの外部キーとデッドロック | MySQL

    外部キーでデッドロックを起こすサンプルコード。 drop table if exists child; create table child (id int, pid int, primary key (id, pid))engine=innodb; drop table if exists parent; create table parent (id int, count int, primary key (id))engine=innodb; insert into parent values (1, 0); alter table child add foreign key (id) references parent (id); トランザクションA ------------------------------------- begin; insert into child val

  • https://engineering.mercari.com/entry/2017/12/18/deadlock

    https://engineering.mercari.com/entry/2017/12/18/deadlock
  • RESTful API設計におけるトランザクション - Qiita

    処理フロー トランザクション開始 productsをSELECTしてstockがあるか確認する ここで商品を確保する(productsの該当レコードのロック)が必要となる ordersにINSERT order_detailsにリクエストの商品配列の件数分INSERT(order_id=ordersと紐付け, product_id=リクエストから) 外部APIに連携して決済する(total_priceを計算して、cardを渡す) 失敗すれば ロールバック 決済が成功すればproductsをUPDATE(stockを減らす) paymentsにINSERT(order_id=ordersと紐付け, amount= total_price, card=リクエストから) コミット 処理全体がトランザクション内で実行されるため外部APIで失敗した場合にロールバックすればなんの問題もないように思われ

    RESTful API設計におけるトランザクション - Qiita
  • Kazuho@Cybozu Labs: REST におけるトランザクションについて (Re: Web を支える技術)

    といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)(山 陽平) - ただのにっき(2010-04-23) 「Web を支える技術」は自分もとてもいいだと思う (教科書としてすばらしいし復習用としても読みやすいのでイイ) のですが、トランザクションの所だけは分かりづらいなと感じました。その原因は、atomic transaction で解決できる課題を例として使っているという点と、トランザクションと更新クエリのレイヤ分割がされていない、という2つの点によるものではないでしょうか。 HTTP 上でトランザクションを表現する必要があるケースのほとんどは、atomic transaction ではなく

  • 2.4 トランザクションと排他制御

    Symfoware/RDBでは、トランザクション単位にデータベースの更新が行われます。複数のトランザクションが同時に同じデータベースを参照または更新すると、データの矛盾が発生してしまいます。このようなことを防ぐために、Symfoware/RDBは、排他制御を行います。ここでは、トランザクション処理と排他制御について説明します。 2.4.1 トランザクション制御の概要 2.4.2 トランザクション制御の方法 2.4.3 SQL文の処理結果異常とトランザクション 2.4.4 アプリケーションの異常終了とトランザクション 2.4.5 排他制御 2.4.6 資源の競合が起きた場合の制御 2.4.7 行単位の排他を使用する場合の注意事項 2.4.8 デッドロックの対処方法 2.4.9 トランザクション実行時間の設定

  • リレーショナルデータベースの仕組み (3/3) | POSTD

    データマネージャ このステップで、クエリマネージャはクエリを実行するので、テーブルとインデックスからデータを取得する必要があります。そこでデータマネージャに対してデータを取得するよう要求するのですが、ここで次の2つの問題が発生します。 リレーショナルデータベースはトランザクションモデルを使用しています。この場合、「いつでも・どんなデータも取得できる」というふうにはいきません。どこか別の場所で、ここに格納されているデータを同時に使用したり更新したりしている可能性があるからです。 データの取得は、データベース内で実行する処理の中で最も時間のかかるもの です。従ってデータマネージャはそれを見越して、メモリバッファにデータを取得しておき、それを保持しなければなりません。 このセクションでは、リレーショナルデータベースがこの2つの問題にどう対処しているかを説明します。なお、データマネージャがデータを

    リレーショナルデータベースの仕組み (3/3) | POSTD
  • トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016

    トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016 数年前にNoSQLが登場した当時、NoSQLにはデータの一貫性を保証してくれるトランザクション機能などが十分に備わっていないため、業務システムのバックエンドとして使うのは容易ではないと考えられていました。 しかしその後、NoSQLをバックエンドにした業務アプリケーションは現実にはいくつか登場してきています。ワークスアプリケーションズが2014年に発表したERPの「HUE」もCassandraをバックエンドに採用した、格的な業務アプリケーションです。 そのHUEの開発に関わるスタッフが、どういう実装ならばNoSQLが業務アプリケーションのバックエンドに使えるのか、それにはどういう意味があるのか、などについて議論したセッション「

    トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016
  • トランザクションの設計と進化

    3. Copyright©2016 NTT corp. All Rights Reserved. トランザクションの基 トランザクションとは: データに対する一連の操作を一つにまとめた単位の事 トランザクションマネージャとは: 複数のトランザクションがACIDを守って走るよ うに管理する機構 A: Atomicity 結果がAll-or-Nothingとなる事 C: Consistency 一貫性を守る事 I: Isolation 過程が他の処理から見えない事 D: Durability 結果が永続化される事 Consistentな状態空間 Inconsistentな状態空間 Diskが取りうる全ての状態の空間 Atomicな遷移 4. Copyright©2016 NTT corp. All Rights Reserved. 何らかの実行順(スケジュール空間) 直列に実行した場合の結果

    トランザクションの設計と進化
  • 1