新・闘わないプログラマ No.173

週末と月末と年度末と


だいたいにして、週末・週初や月末・月初や年度末・年度初(あれ? こんな言葉は無いか…)というのはコンピュータシステムのトラブルが多い日だったりするわけですけど、それは、 そういう区切りの日にのみ動くプログラムがあったり、そういう日にシステム改変があったり、そういう日には普段よりデータ量が多かったり、といったようなことが理由なわけです。
先週の金曜日(2001年3月30日)は、週末で、かつ、月末で、かつ、年度末だった、最後の平日だったわけで、この3つが重なった日ということは、盆と正月が一緒に来たような騒ぎ(←あまりいい例えとは言えない)になったりしがちです。
そういえば1年3ヶ月ほど前、例の「2000年問題」とやらで世間はお祭り騒ぎだったわけですけど、どちらかといえば、この週末の方がトラブルが起こりやすい危険日なのではないか、などとも思ったりするわけでして…。
かく言う私自身はどうだったかと言えば、もともとの仕事の内容からして、どちらかと言えばネットワークとかOSとかに近いところのことをやっている関係上、基本的にはあまり関係が無かったりするはずだったのですが…。
まあ特に問題ないだろう、と先週の金曜日の夕方には、花見の予定などというものを入れてしまった恐いもの知らずの私なのでした。

ことの起りは、金曜日の朝、ある人物が風邪とやらで休暇を取ったことに始まります。
その時点では、お気楽に「今日は早く帰ろ♪花見の予定があるし…」などと考えていた私だったりするわけですが、夕方の4時頃になって、その休んだ奴が、前日営業の人から、金曜に行うある作業を頼まれていることが発覚しました。その作業、簡単なバッチ処理のプログラムを実行するだけの別にどうというほどのこともない、せいぜい10分くらいで終わるような、とりたてて大変なものではないはずでした、少なくとも普段は。
で、その作業、私も仕事の上でちょっとばかり関連があったせいか、こっちに回ってきました、他に知っている人間がいなかったもので。で、さっそく件のバッチプログラムを動かしたのですけど、10分経っても20分経っても全然終わろうとしませんでした。それが30分になり1時間になり…とうとう終業時間になってしまいました。
「今日は花見の約束があるんだけどなあ、ぶつぶつぶつぶつ」
どこかでプログラムがループしているんじゃないか、とか、DBMSが死んでいるんじゃないか、とか、いろいろ調べて見たのですが、遅いながらも処理は進んでいるようでした。確かにその日は週末で月末で年度末だったせいもあって、普段の10倍のデータがあることは確認できたのですが、それでも10分が100分になるはず…今日の花見は出られないなあ、などと思ったのが19時過ぎ。
処理があまりにも、あまりにも、あまりにも遅すぎる、ということで、処理しているプログラムの方を確認することにしたのが19時半。でも、そのソースが一体どこにあるのか、知っているのは休んだ奴だけ…しかも電話をしても何故か出ない。
「find」「grep」コマンドなどを駆使してやっとソースを見つけたのが20時半。必死になってプログラムを解析して見ると…おいおいおいおい、このプログラムの処理時間、データ量の2乗に比例するじゃんかよー。これじゃ普段の10倍のデータ量があったら100倍の時間がかかるってこと??
えーと、普段のデータ量で10分ということは、その10倍のデータ量があると、10分×100倍で…げ、16時間以上かかってしまう計算になる。道理で終わらないはずだ。しかしまあ、なんて安直なアルゴリズムなんだ。どうしてもデータ量の2乗に比例するアルゴリズムを使わざるを得ないような処理ならともかく、これはそんなこと無いだろー、誰だよ、このプログラム作ったのは。あ、休んだあいつか。さては、今日はこうなることを事前に予測して逃げたな。

ちなみに、金曜の夜の花見は寒いので中止、土曜日は吹雪、ということで結局日曜日に。ですから仕事で遅くなってもあまり影響は無かったのですが、でも土曜日の季節はずれの吹雪の中を家に帰った私だったりします。
というわけで本当は、去年の4月1日にやって不評・顰蹙を買ったエイプリルフール版「闘わないプログラマ」、顰蹙をものともせずに今年もやろうか、などと考えていたのですが、週末にはそんなのを書く気力が残っていませんでした。
そんなわけで、なんかいろいろとドタバタしていた週末でした。でもよく考えたら、月曜日もいろいろとあるんだろうなあ。休もうかな ←おい。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp