タグ

transactionに関するlamichのブックマーク (7)

  • 第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(1) | gihyo.jp

    開始コマンドがDBMSによってバラバラなのは、標準SQLで明確に決まっていないためです。中にはOracleDB2のように、データベースへ接続したら自動的にトランザクションが始まることになっているため、開始コマンドのないDBMSもあります。確かに、最初に暗黙に開始されれば、そのあとは終了文だけあれば区切りはわかる(終了文が次のトランザクションの開始文も兼ねる)ので、合理的といえば合理的です。 構造的な単位としてのトランザクション 一方でDBMSの側から見ると、トランザクションは2つの重要な機能に関係しています。それが、「⁠データの復旧」と「同時実行制御」です。まずは、前者から見ていきましょう。 トランザクションは復旧の単位 障害発生前に終了したトランザクション データベースに限らず、システムというのは使い続けていればどこかのタイミングで障害に見舞われます。なるべく障害に遭遇しない堅固なシス

    第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(1) | gihyo.jp
  • 第4回 クエリ評価エンジンと実行計画―“シェフおまかせ”はいつも美味しいのか(1) | gihyo.jp

    はじめに 結果として、SQLのような関係型の言語は非手続き型の言語と呼ばれるが、これはユーザは「いかに」ではなく「何を」を指定する―つまり、獲得するための手続きを指定することなしにユーザは何が欲しいかをいう―からである。 ─⁠─ Christpher J. Date[1] Webの入力フォームであれ、コマンドラインツールであれ、インタフェースにかかわらず、リレーショナルデータベースに対する操作はSQLという専用の言語で行われます。ユーザ(プログラマ含む)が意識的にコーディングするのは通常このSQLレベルまでで、あとはDBMSが処理を終え、結果を返却するのを待つのみです。SQLRDBMSにおいては、ユーザはデータのありかを知る必要もなければ、そこへのアクセス方法も考えません。そういう仕事は、全部DBMSに任せています。 このプロセスは、通常「プログラミング」と呼ばれるものとはかなり異なりま

    第4回 クエリ評価エンジンと実行計画―“シェフおまかせ”はいつも美味しいのか(1) | gihyo.jp
  • trippieceにみるテイストグラフ系サービスのマネタイズ手法 | The Startup

    ソーシャル旅行企画サービス?のtrippieceがリニューアルしたようですね。 MOVIDAからの出資も発表されたようです。概要などはTech Crunchの記事でご覧いただくとして、稿ではテイストグラフやtrippieceのビジネスモデルに着目した記事をお届けします。 ■テイストグラフとは? 一応、定義を振り返ってみましょう。「インタレストグラフ」と呼ばれることも多いですが「テイストグラフ」と同義であると捉えて差し支えないでしょう。 twitter/Facebook連動(によるログイン)をベースとして特定のカテゴリ(/服/など)に特化した情報をそのサイト内で共有していき、趣味が合う人同士で盛り上がることができるという、濃淡はあれどもコミュニティ要素のあるサービスです。 twitter/Facebook連動によりある程度の実名性が担保されることにより顔が見える相手とのコミュニケーショ

  • 2相コミット - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "2相コミット" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2015年10月) 2相コミット(Two-Phase Commit)とは、コンピュータネットワークやデータベースにおいて、分散システム内の全ノードがトランザクションのコミットに合意するための分散アルゴリズムあるいはプロトコルである。ネットワーク障害やノード故障の場合も考慮され、結果としてトランザクションはコミットが成功するか失敗するかのいずれかの状態となる。しかし、Dale Skeen とマイケル・ストーンブレーカーの研究によれば、2相コミットは同時に複数のサイトが(無作為に)

  • ACID (コンピュータ科学) - Wikipedia

    ACIDとは、信頼性のあるトランザクションシステムの持つべき性質として1970年代後半にジム・グレイが定義した概念で、これ以上分解してはならないという意味の不可分性(英: atomicity)、一貫性(英: consistency)、独立性(英: isolation)、および永続性(英語版)(英: durability)は、トランザクション処理の信頼性を保証するために求められる性質であるとする考え方である[1]。 この語はその4つの性質を表す英語の単語の頭文字をとって作られた頭字語であり、1983年にアンドレアス・ロイター[2]とテオ・ヘルダー[3]によって提唱された。

  • MySQL ロックの話 | feedforce Engineers' blog

    ロックの基 ロックってなんだ データの整合性を保つために読み書きを一時的に制限する仕組み READロックとWRITEロック READロック 共有ロック 他のスレッドによるデータの読み込みは可能 他のスレッドによるデータ変更は不可 WRITEロック 排他ロック 他のスレッドによる読み込みも変更も不可 ロックキューと優先順位 ロック要求を出したときに対象がロック済みの場合はロックキューに要求を入れる WRITEロックキューとREADロックキューがあり、WRITEロックキューが優先的に処理される よってWRITEロックが続くとSELECTできない状態になる この優先順位はいろんな単位で変更可能 基的に更新をなるべく早く反映させるためにWRITEロックが優先される ロックレベル テーブルロック ISAM/MyISAM/HEAP テーブル単位のロック デッドロックフリー 大部分が読み込みの場合に

    MySQL ロックの話 | feedforce Engineers' blog
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.5 InnoDB のデッドロック

    デッドロックとは、それぞれが他の必要なロックを保持しているために、異なるトランザクションを続行できない状況です。 両方のトランザクションがリソースが使用可能になるのを待機しているため、保持しているロックは解放されません。 デッドロックは、(UPDATE や SELECT ... FOR UPDATE などのステートメントを使用して) 複数のテーブルの行をトランザクションがロックするときに発生する可能性がありますが、逆の順序で発生します。 デッドロックは、このようなステートメントがインデックスレコードとギャップの範囲をロックし、各トランザクションが一部のロックを取得するけれども、タイミングの問題によりほかを取得しない場合にも発生することがあります。 デッドロックの例については、セクション15.7.5.1「InnoDB デッドロックの例」 を参照してください。 デッドロックの可能性を減らすには

  • 1