デッドロック

デッドロックに関する関連サイト、関連ブログ、関連動画をご紹介します。

関連ブックマーク
  • Scalaで副作用の無いスレッドセーフな設計 | Lab by engineering@dwango.jp

    今回の記事を担当する新卒の西村と申します、よろしくお願いします。 今回のテーマはオブジェクト指向に関数型の特徴を取り入れることで、副作用の無いスレッドセーフな設計をしようと言うものです。 Javaではスレッドセーフな設計をすることがひとつの壁であるかのように感じられますが、 関数型のように書いていくことでスレッドセーフがぐっと身近になるということを紹介したいと思います。 対象読者 Java利用者 ...

  • Actor&stm

    \n \n \n \n \n \n \n 巻き上げ。最適化していいことになっているから、\n \n スレッドAで書き込んだら、次のスレッドBで読み込めるとは限らない。\n スレッドAで書き込んだら、次のスレッドBで読み込めるとは限らない。\n スレッドAで書き込んだら、次のスレッドBで読み込めるとは限らない。\n スレッドAで書き込んだら、次のスレッドBで読み込めるとは限らない。\n \n \n ...

  • F's Garage @fshin2000 :twitter apiが落ちる理由

    正確にはtwitter apiが落ちているかはわからない。 twitterのツイートを送るという行為は、おそらく以下のような処理で作られていると思う。 1.ツイートを受信する 2.ツイートを見ることができる人のデータベースに、もれなくツイートが配信される。 (今ツイッターにアクセスしている人のメールボックスに即時、配信されるイメージ) ただし、このツイートを見る事ができる人というのは、 ・この人を...

関連Q&A
Cakephpのデッドロック回避方法を教えてください!!仕事でデッドロックを出さないようにしろと言われたのですが直せなくて困っています。内容の最後の方に3つ質問が書いてあります。できれば上から読んでほしいです■問題内容Cakephpで作ったWebアプリで画面遷移させるとCake_SessionsというテーブルにUPDATEを行うのですが、このとき、ボタン、リンク、F5連打などページを再読み込みさせるアクションをとるたびにUPDATEを行います。しかし、トランザクションを張っているにもかかわらず、Deadlockが発生しています。Webアプリ側で出しているログで確認しただけです。DBはFirebirdです■環境ブラウザ:IE8フレームワーク:cakephp(色々フレームワークにも修正を入れている状態…)DB:firebird言語:php5上記の細か一バージョンは覚えてない。■現状わかっている事と考察Firebirdに複数スレッドでアクセスし下記のように直接SQLを投げるSET TRANSACTION WAIT ISOLATION LEVEL READ COMMITTEDUPDATE文実行どれか1つのスレッドでCOMMITこの場合は最初にUPDATEを実行したスレッドをコミットするまでの間は他のスレッドはコミット待ち状態に入っていました。コミット後もデッドロックは起きませんでした。つまりFirebirdの問題とは考えにくい。ちなみにデッドロックはNoWaitになっているからだと言う人がいるがそれは大前提で、READ COMMITTEDもつけないとデッドロックが発生するケースがありました。CakePHPでもこのようにSQLを投げれば問題ないと思い修正を実施したが、デッドロックが発生する。ロールバックは正常にされるのでトランザクション自体はできている。CakePHPでは最終的にすべてのSQL文はibase_queryというphp関数を使ってFirebirdに投げていました。CakePHPで用意されているトランザクション処理もSET TRANSACTIONやCOMMIT、ROLLBACKなどをSQL文で投げてトランザクション処理を行うように作られていました。(別会社でフレームワークの中をいじっている)個人的にはibase_transという関数でトランザクション処理をしないとだめなのではと思っています。明日試すつもりです。■質問①デッドロックを確実に回避することができるかどうか? 簡潔にYESかNOでいうとどっちですかね?できればその後理由も教えてほしいです。②ibase_transを使わずにibase_queryだけでデッドロックは回避できるのか?(私はできないと思っています)③Cakephpでibase_transを使わずにトランザクション処理をしているのはなぜ?
Firebird、CakePHP使ったことがないので(1)のみYesです。やり方はReadからUpdate、Commitまでロックをかけてしまう(悲観的ロック戦略)。またはUpdate時にRead時から他のトランザクションから変更がかけられていないか確認してから処理を行いCommitする(楽観的ロック戦略)。でできると思うのですが。
500枚! この問題分かる人いますか?1) H13 秋 基本情報 問69DBMS の排他制御機能に関する記述のうち、正しいものはどれか。ア DBMS が自動的に行うものと、アプリケーションプログラムがDBMS に明示的に指示して行うものとがある。イ オンラインでの更新時に行うべきものであり、バッチ処理による更新時には行う必要はない。ウ 関係(表)単位に行われることが多い。エ 第一の目的は、デッドロックの防止である。2) H15 秋 問44DBMSの排他制御に関する記述として,適切なものはどれか。ア データベースに障害が起きた場合,自動的にデータベースを復旧する機能 イ データを参照する際の優先順位を管理する機能 ウ データを同時に更新しようとしたとき,矛盾が起こらないようにする機能 エ デッドロックが起こらないようにする機能3) H16 春 基本情報技術者DBMS におけるデッドロックの説明として,適切なものはどれか。 ア 2相ロックにおいて,第1相目でロックを行ってから第2相目でロックを解除するまでの状態のこと イ ある資源に対して占有ロックと占有ロックが競合し,片方のトランザクションが待ち状態になること ウ あるトランザクションがアクセス中の資源に対して,ほかのトランザクションからアクセスできないようにすること エ 複数のトランザクションが,互いに相手のロックしている資源を要求して待ち状態となり,実行できなくなること4) H13 春 基本情報技術者 問68DBMS がチェックポイントで行う処理として,適切なものはどれか。ア 再実行すべきトランザクションのリストを作成する。イ データベース更新バッファの内容をデータベースヘ書き出す。ウ トランザクション完了ログを書き出す。エ ログバッファの内容をログファイルヘ書き出す。
僕はちょうど7年ほど前に基本情報に合格したので応えます。ってか、む・むずい。覚えていないよ。当時の基本情報ってむずかったですよね。13年春の合格率13%だっけ?てか、その後セキュアド合格しました。1:ウ? 引っ掛けの様に紛らわしいです。エと思わせてウでしょう。2:ウ? 優先順位を管理するのはディスパッチャでしたっけか?割り込みします。つまりプリエンプトします。3:エ? 資源を相互に求め合い、次の処理が行えない状態で、システムが停止した状態です。4:イ? 一番悩みました。チェックポイントダンプでは更新内容を書き出し、そのダンプを基に操作することがあるんでしたっけ?
関連動画
http://i.ytimg.com/vi/Lyy8R3_aYwI/0.jpgのキャプチャ画像
勝手にしやがれ 2012年1月18日発売「メロディ」楽曲解説1/4

勝手にしやがれ ニューアルバム「メロディ」 Label:UK.PROJECT 品番:UKCD-1136 定価:2940円...

http://i.ytimg.com/vi/jFo8U_CL8bU/0.jpgのキャプチャ画像
勝手にしやがれ 2012年1月18日発売「メロディ」楽曲解説4/4

勝手にしやがれ ニューアルバム「メロディ」 Label:UK.PROJECT 品番:UKCD-1136 定価:2940円...

http://i.ytimg.com/vi/77x1X6xxkRM/0.jpgのキャプチャ画像
【池部楽器店】 「ロックの名曲をVG-99で再現!feat.中野豊」 vol.1

アンプ、エフェクターのみならず、エレキギター、アコースティックギター等のサウンドも超リアルに再現可能なローランドVギター...

PAGE TOP
テレビ ブロードバンド 新着番組ランキング
更新日:2012/02/07