ブックマーク / cloudear.jp (1)

  • デッドロックを回避するために - 技術ブログ | 株式会社クラウディア

    みなさんこんにちは masa です。今日はデータベースにおいて致命的なバグであるデッドロックについて取り上げます。プログラマーDBA な方以外にも聞いたことがあるワードなのではないでしょうか。 開発の流れにおいて、きちんとトランザクション設計、リソースアクセス順序の設計がされていればデッドロックは理論上は発生しないはずなのですが、オープンソースのソフトウェア基盤なんかを使用している場合、世界中のエンジニアがバラで開発してる宿命というもあり、普通にデッドロックしたりしますw デッドロックは同じタイミングでリソースを確保しにいった際に発生するものなので、リリースするまで発覚しなかったというケースもあります。 そもそもデッドロックとは何なのかおさらい まずは問題ないアクセスについて図を描いてみましたのでみてみてください。トランザクション=スレッドと捉えてもらっても構いません。 (解説)上の図

    sadayoshi_tada
    sadayoshi_tada 2022/10/02
    “トランザクションの処理にタイムアウトもしくはリトライ回数を準備しておき、どちらかの処理がロックを解放するようにします”
  • 1