とあるOLTPのシステムにおいて、大昔のS-in当初と比べて取り扱うデータ量が大きく肥大してきたことにより発生した、ありえない事件簿。
ありえないと思った順にTOP3を紹介する。
第3位:日次バッチが24時間で終わらなくなって、翌日分が開始できなかった!
データ量が増大して徐々に処理時間が伸びるようにあり、やがて24時間を超えたために発生した事件。
そんなことある??
というか、数時間かかるようになったタイミングで気づいて対処しようよ~。
第2位:DBで一意制約違反発生の原因が、Oracleシーケンスのカンスト
シーケンスが上限まで行ったら1に戻るように設定されていて、
いつの間にかその上限を超えて2周目に入っていた・・・
だけならまだしも、たまたまテーブルがこのシーケンスと別のキーとの複合キーになっていたため、
1に戻っていてもキー重複でエラーになるかどうかは運次第だった。
そして、エラーが発生した時点で、シーケンスは2周目ではなく、3周目の半ばあたりだった。( ゚д゚)
第1位:性能対策のはずのパージバッチが・・
DB高騰要因となっていたテーブルのデータ量削減のため、
月次バッチで古いデータをパージテーブルに退避する仕組みが作られた。
それで数年は無風だったのだが、そのうち、
毎月決まったタイミングでスローダウンが発生するという報告が上がるようになり調査したところ、
パージバッチが動作している時間帯とぴったり重なることが判明。
月単位でたまるデータ量が徐々に増えていったたため、パージ処理自体が重くなってしまった模様。
暫定的にパージバッチは停止され、その後誰も恒久策を打たないまま、どうなったのかは知らない。