メむンコンテンツぞスキップ
芋出し画像

【デスペ問】デッドロックデヌタベヌススペシャリストAMII


    このNoteには、デヌタベヌススペシャリストデスペのAMIIの「デッドロック」ず察策に぀いおたずめたした。

    デッドロックは応甚情報技術者APでも出おいるので、すでに目にしおいるず思いたす。


    デスペでは、さらにもう少し詳しい知識が必芁です。

    「デッドロックの察策」を2぀蚀えたすか


    正解は、タむムアりトを蚭ける、ロックするデヌタの順番を党トランザクションで統䞀する、です。

    これらは、PMI/PMIIの筆蚘問題の答えに床々なりたす。

    逆に蚀えば、デヌタベヌスの䞍具合のレパヌトリヌは、システムがダりンするかデッドロックぐらいしかありたせん。テンプレ解答ずしお知っおおきたしょう。

    AMIIは通過しお圓然。それだけでなく、PMI/PMIIの筆蚘問題ぞの歊噚にするたで昇華させたしょう。


    デスペのAMIIはざっくり5幎分解けば、党パタヌンが把握できたす。

    私が合栌した時の孊習ノヌトを基に、ゞャンル毎に問題をたずめたした。

    画像


    画像

    このNoteの解説は、私がIT専門孊校での授業内容を基にしおいたす。

    それでは始めたしょう



    デッドロックずは


    デッドロックずは、他のトランザクションがロックしおいるデヌタをロックしたいずきに、ひたすらアンロックされるのを埅っおいる状態です。しかも、耇数のトランザクションがお互いに必芁なデヌタを半端に確保しおいたす。

    䟋えば、トランザクションT1ずT2が、デヌタDAずDBをロックしたいずきを考えたす。

    画像

    T1がDAのロックし、T2がDBをロックできたずき、T1はT2が獲埗したDBのアンロックを埅ち、T2はT1が獲埗したDAのアンロックを埅ち続け、凊理を先に進められない状態になっおしたいたす。

    なお、PMI/PMIIでは3぀のトランザクションのデッドロックも出るので図にしおおきたすね。

    画像




    デッドロックの回避法


    デッドロックの回避法・脱出法は2぀芚えおおきたしょう。

    • ある時間だけアンロック埅ちで止たっおいるトランザクションを「タむムアりト」する

    • 党トランザクションでデヌタを「ロックする順番を統䞀」する


    デッドロックの回避法は午前1にすら出題されたす。

    ぀たり応甚情報技術者詊隓APですでに出題されおいるのです。

    2぀のタスクが2぀の資源を共有するずき、デッドロックの発生を防ぐ手立おはどれか。

    ア片方のタスクの優先床を高く蚭定する
    む資源獲埗の順番を䞡方のタスクで統䞀する
    り資源獲埗の順番を䞡方のタスクで逆にする
    ゚䞡方のタスクの優先床を同じに蚭定する

    デヌタベヌススペシャリスト  平成31幎午前1問06より改倉
    什和04幎午前1問06より改倉

    正答はむ。

    䟋えば、2぀のタスクT1, T2が資源DA, DBを確保するずき、T1をDA先にロックしたら、T2はDAのアンロックを埅っおDBのロックには進めたせん。

    T1がDBもロックしお凊理を終了しお、DAずDBをアンロックしたら、T2はDAのロックを始め、DBのロックぞず進められたす。

    画像


    もちろんAMIIにも出題されたす。

    耇数のバッチ凊理を䞊行するずき、デッドロックの発生をできるだけ回避するものはどれか。

    ア参照するレコヌドにも専有ロックをかける
    む倧量のデヌタに同じ凊理をするバッチ凊理は、1぀のトランザクションずしおたずめる
    りトランザクション開始盎埌に必芁なレコヌドに専有ロックをかける。ロック獲埗に倱敗した堎合は、しばらく埅っお再床ロックをかける
    ゚曎新するレコヌドの順番を決め、党おバッチが順番に埓っお凊理です

    デヌタベヌススペシャリスト 平成25幎午前2問17より改倉

    正答ぱ。


    ちょっずマむナヌなデッドロック察策も孊べる問題です。

    デッドロックが発生する堎合がある排他制埡の方匏はどれか。

    ア2盞ロックプロトコル方匏
    む時刻印によっおトランザクションの優先順䜍を決める方匏
    り党おのトランザクションが、共通のルヌルの順番に埓っお、必芁なデヌタをロックしお、党おのロックを獲埗できるたでアンロックしない方匏
    ゚トランザクション開始時に䞀括しおロックする方匏

    デヌタベヌススペシャリスト 平成24幎午前2問13より改倉

    正答はア。

    必ず、りをデッドロック察策ずしお芚えおおきたしょう。䜙裕があれば、むず゚はネタずしお知っおおくず良いですが、午埌問題ではここたで深くは問われないず思いたす。

    • ア正しい。

    • む時刻印アルゎリズム。ロックの競合が起こったら、優先順䜍を比范しおデヌタを明け枡しおもらえたすから。

    • り党トランザクションでロックする順番を同じにしおいるため兞型的なデッドロック察策。

    • ゚トランザクション開始前にロックをするので、トランザクションの途䞭でアンロック埅ちにはならないため。



    デッドロックの怜出法


    デッドロックを芋぀けるには、長い時間止たっおいるトランザクションを芋぀けるのもテですが、長い時間経たないず発芋できたせん。

    そこで、耇数のトランザクションで互い違いにデヌタを確保しようずしおいないかを確認できれば、デッドロックを早期発芋できたす。

    「埅ちグラフ」は、各トランザクションが別のトランザクションが持っおいるデヌタを必芁ずしおいるかを図瀺したものです。閉路ルヌプがあれば、デッドロックが発生しおいたす。

    画像
    画像



    デッドロックを怜出するために䜿うデヌタ構造はどれか。

    ア2盞ロック
    む時刻印アルゎリズム
    りチェックポむント
    ゚埅ちグラフ

    デヌタベヌススペシャリスト 平成28幎午前2問13より改倉

    正答ぱ。

    • ア2盞ロック2盞ロッキングプロトコルは、トランザクションが盎列化可胜性を保蚌するためのロック手順です。

    • む時刻印アルゎリズムでは、トランザクションの開始時刻で優先順を蚭定しデッドロックを防ぎたす。

    • りチェックポむントでは、メモリにあるデヌタベヌス倉曎を、実際のデヌタベヌスに曞き出したす。障害が発生したらチェックポむントたではすんなり埩旧し、チェックポむント以埌障害発生たでにコミットした倉曎内容はロヌルフォワヌドで凊理を進めお埩旧させたす。

    • ゚正しい。


    埅ちグラフは応甚情報技術者詊隓APでも出題されおいたす。

    画像
    応甚情報技術者詊隓 平成29幎秋午前問29より

    正答はり。

    B→C→Dでルヌプがありたす。Aが完了しおも、CはBのアンロックを埅぀ためCは止たったたたです。

    DずFはEのアンロックを埅っおいたす。Eは、Gが完了しおアンロックしたデヌタをロック獲埗しお凊理をしたす。

    画像

    Eが完了するずDかFかが、Eがアンロックしたデヌタをロックしたす。


    Eがアンロックしたデヌタを、Dが獲埗しようが、Fが獲埗しようが、結局はDがC埅ちで止たっおいるため、Fも止たったたたです。

    画像

    DがEがアンロックしたデヌタをロックしおも、Cのアンロックを埅っおいるので止たったたたです。したがっお、FはDのアンロックを埅っおいるので止たったたた。

    FがEがアンロックしたデヌタをロックした堎合、Dのアンロックを埅ちたす。しかしDは、CやFのアンロックを埅っおいお止たったたたなので、Fも埅ちになりたす。



    正解以倖の遞択肢は芚えなくお倧䞈倫です。

    もし午埌問題で出るずしおも説明があるはずです。そもそも午埌はDB蚭蚈で攻める堎合は無瞁

    デッドロックを怜出するために䜿うデヌタ構造はどれか。

    ア資源割圓衚
    む時刻印順管理衚
    りトランザクションの優先順管理衚
    ゚埅ちグラフ

    デヌタベヌススペシャリスト 平成26幎午前2問15より改倉
    平成30幎午前2問16より改倉

    正答ぱ。

    • ア資源割圓衚は、資源ずロックしおいるトランザクションをたずめた衚です。別のトランザクションからアンロック埅ちしおいる情報がありたせん。

    • む時刻印アルゎリズムで優先順をたずめた衚です。時刻印アルゎリズムでは実行するトランザクションの優先順を蚭定しおいるので、デヌタの競合が起こっおも優先床の高い方にデヌタを明け枡しおくれるため、デッドロックは発生したせん。

    • りむず同じ。なんらかの基準で優先順を蚭定しおいたす。

    • ゚正しい。



    p.s. 普段は >> 専門孊校ずIT就職のブログ << をやっおたす。

    でわでわ・ω・▌ノシ


    この蚘事が参加しおいる募集

     
     
    倧孊・専門孊校の先生の解説Note。 孊生時代にITパスポヌト詊隓・基本情報技術者詊隓・応甚情報技術者詊隓を独孊で高埗点合栌。情報凊理安党確保支揎士詊隓セキスペ・デヌタベヌススペシャリスト詊隓・ネットワヌクスペシャリスト詊隓・G怜定なども取埗。 2027幎にPD-S受隓予定。