パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

4月1日に発生したJALのシステム障害は追加されたキャッシュの排他処理によるデッドロックが原因」記事へのコメント

  • この場合のキャッシュの排他制御機構って何だろう。 良かれと思ってDogpile対策にStale Cache返却ロジックでも勝手にfcntl lockで組み込んだのかね?(勝手な想像)
    • by Anonymous Coward

      キャッシュと本物が互いの排他をとって互いに更新しようとしたんじゃない?

      • Re: (スコア:3, 参考になる)

        前提
        ・キャッシュは、ほぼ読み込みのみ
        ・ディスクは、読み書きがある
        ・キャッシュとディスクはネットワーク上の別ノード

        当初
        ・ディスクのみ排他処理アリ

        パッチ後
        ・キャッシュ、ディスクともに「個々に」排他処理アリ

        問題点
        ・トランザクション的に次の2パターンがあった
         1.キャッシュアクセス → ディスクアクセス
         2.ディスクアクセス → キャッシュアクセス
        ・キャッシュアクセス、ディスクアクセスで別々に排他処理をしていた

        開けてみればシンプルなデッドロックではありますが・・・・
        • by saratoga (23467) on 2016年04月11日 23時28分 (#2995769) 日記

          システム構成図見る限り、アプリケーションサーバにキャッシュを持たせるという構成がそもそもダメだと思う。
          素直にデータベースサーバを増強するか、百歩譲っても、そういうトリッキーな構成を採るなら、きちんとデータの整合性が確保できるようにデータ更新のお作法の基準を決めてレビュー項目・テスト項目に入れておかなくちゃダメだろ。
          だいたい、ロック機構を入れてデッドロックが起こったということは、実はこれまでもデータの上書きが発生してたけど、問題が露見しなかっただけという可能性も十分考えられる。
          システム組む人なら、まずは、あの構成図見て「これはイカン」と感じるセンスが必要だと思う。そして予算がなくて工夫でカバーするにも、それなりの手当てが必要だということも理解しないと。

          親コメント

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

処理中...