2003年4月の修行日記


2003/04/19
 10000アクセス記念の企画、『オペラ鑑賞の夕べ』を立てました。少し早いと思われるかもしれませんが、もう休日の公演はほとんど埋まっているんです。仕方なく平日夕方に設定しましたが、ひょっとしたら参加者は私一人だけということになりかねませんね……
 普通にチケット買うより2割安いので、いままでオペラに関心がなかった方もぜひご参加ください。(かくいう私も初めてです。)
 『オセロ』には英語版、イタリア語版の2種類がありますが、今回はイタリア語版です。そのため正確には『オテロ』ですね。


2003/04/18
 全社員の今年度の年俸が定まった。全般的にベースダウンし、同じ職位でも昨年より3%ほど低い。
 私自身は職位が2段階上がったため満足しているのだが、プロジェクト内にはこれまで払った大きな犠牲に対する報酬があまりに少ないことに落胆し、辞職を決意するメンバーも多い。
 この日記に度々登場する先輩は1段階しか職位が上がらなかった。明らかに2段階上がってよい働きぶりなのだが、全社のプロマネ会議でそう決まったらしい。赤字のプロジェクトから2段階アップの人をそうそう出すわけにはいかなかったのだろう。(私はまだヒラレベルだから、大目に見られたのだろう……)


2003/04/11
 移行データミスのリカバリのため、オンライン時間後の22:30よりデータパッチを適用することになった。
 事前に開発用DBサーバーでテストを重ね、5分以内の処理完了を確認していた私は、立会いの顧客側システム部員に「10分で終わりますよ。」と余裕をもって宣言し、本番DBサーバーに接続、以下のようなクエリーを流した。
INSERT INTO TABLE_X
SELECT /*+ ORDERED
USE_HASH(A,B)
FULL(A)
INDEX(B PK_TABLE_B) */
B.COLUMN_1,
B.COLUMN_2,
TO_CHAR(A.YMD_1 + 20000000, 'FM00000000')
FROM TABLE_A A,
TABLE_B B
WHERE TO_CHAR(A.COLUMN_1,'FM0999999999') = B.COLUMN_1
AND A.COLUMN_2 = 0
AND A.COLUMN_3 = 0
AND A.YMD_1 BETWEEN 30000 AND 30331
AND B.COLUMN_2 <= '20030331'
;
05分経過―――何か様子がおかしいことに気づいた。
10分経過―――明らかに遅すぎる。プランをとるがテスト時と変わらない。それだけに不安が高まった。
20分経過―――まだ終わらない。このペースでは夜間バッチ開始時刻に突入、つまりタイムリミットになる可能性が濃厚になってきた。
 不安と恐怖に耐え切れなくなった私は、(それでもお客さんの手前極力動揺を抑えて)席を立ち、先輩のところに行って助けを求めた。

 昨晩徹夜だった先輩は眠い目をこすりながらも、私の要請に快く応じてSQLを診てくれた。
「うーん、本番サーバーはチューニングのポイントが少し違うんだよ……これはパラレルを使うしかないな。」
 そう言って先輩は、SQLを次のようにリライトした。
INSERT INTO TABLE_X
SELECT /*+ ORDERED
USE_HASH(A,B)
FULL(A)
FULL(B)
PARALLEL(A, 3)
PARALLEL(B, 3) */
B.COLUMN_1,
B.COLUMN_2,
TO_CHAR(A.YMD_1 + 20000000, 'FM00000000')
FROM TABLE_B B,
TABLE_A A
WHERE TO_CHAR(A.COLUMN_1,'FM0999999999') = B.COLUMN_1
AND A.COLUMN_2 = 0
AND A.COLUMN_3 = 0
AND A.YMD_1 BETWEEN 30000 AND 30331
AND B.COLUMN_2 <= '20030331'
;
 リライトしたクエリーはすぐに結果を返した。
「よし、一分かかってない。他のSQLも同じやり方でリライトすればOKだ。」
 先輩は私の肩を軽くたたいて席を立ち、自分の部署へ戻っていった。
 その姿には技術者らしいダンディズムがあった。


2003/04/10
 突然スローダウンするDBサーバーの監視モニタを見ると、ふと自分もゆっくりしたいなぁという想いに駆られる。
 もうあきらめて放り投げようよ。うちの会社、お客さんの会社が破綻しても、それぞれの従業員たちのスキルや経験は害されない。同業他社に転職するもよし、異業種もよし、独立もよし、隠居もまたよし。いずれにせよこのまま徒労を続けるより、絶対皆幸福になれるはずだ。


2003/04/09
 新システムはさながら生まれたての魔獣ですさまじく暴れており、数十人がかりでもまだ手懐けられていない。
 目下のところ最大のトラブルは、毎日昼過ぎにDBサーバーの負荷が高まりすぎ処理が固まってしまう(新しいセッションも張れない)というもので、この恐ろしい発作が起きるとシステムを臨時にダウンさせメモリを強制解放せざるをえない。
 かつてはプロジェクト内で最も苦労している人々といえばアプリの仕様責任者だったが、いまはインフラ周りの人々にその順番が回っている。
 オンライン中のシステム停止はお客さんの会社に大きな損害を与えており、そのことは大変遺憾に思うし、申し訳ない。
 しかし他方で、これまでのうのうと安逸を貪り、評論家然として高所からアプリ仕様責任者を馬鹿にしてきたわが社の技術陣が、いまや塗炭の苦しみを味わい夜も眠れないという状況は、世の中の因果応報の観点から公平に望まれたことと言わざるを得ない。


2003/04/06
 今日は休みを許され、AM8:30に退社。帰宅してとりあえず眠る。
 PM2:00ごろに電話で起こされる。トラブル発生でお客さんからクレームが来たとのことだが、なにぶん体がだるいので他のメンバーに対応してもらうということで勘弁してもらった。
 明日はオンライン開局のAM8:00までに出社する。


2003/04/05
 22台のAPサーバー、3テラバイトのSANで構成された巨大なシステム(いちおう金融基幹系)が、動き始めた……だが、
 「腐ってやがる、早すぎたんだ!」
 有名なクロトワの台詞どおりの事態が展開した。(『風の谷のナウシカ』)
 一日中障害対応に追われ、夜間バッチの終了を見届けて今は6日の午前5時過ぎ。


2003/04/03
 今のところ移行データに不備が発覚していないのでゆとりがある状況。

 このまま無事にカットオーバーすれば、今度はアプリの修正を引き継ぐことになっているのだが……
 私に先行して引継ぎを受けている女性メンバーが、いやになって放棄したということだ。いまさら他のプロジェクトに行くなんてわがままは許されないだろうし、会社辞めるのかな。


2003/04/02
 ――なんとか生還した。
 とりあえず一安心。眠ります。


2003/04/01
 今日は最終移行作業のため19:00出社でそのまま徹夜で翌2日の17:00あたりに解放というスケジュールなので、めいいっぱい睡眠時間帯をスライドさせることにする。つまり7:00あたりまで就寝を引き伸ばし、16:00まで睡眠、起床後食事をして18:30出社という計画。それまでは頑張って起きていなくては……
 退屈なので本を読むことにする。
 ――人生最後の読書かもしれない。
 太平洋戦争、レイテ島に征き、マラリアや米兵、原住民ゲリラに脅かされながら読書した大岡昇平はこんな気持ちだったのだろうか。
 極限状況で私が選んだのは、『オラクルマスター教科書』ではなかった。

 (左)町田健『生成文法がわかる本』研究社 (右)チャーチル『わが半生』角川文庫
 写りが悪いですが、携帯付属のカメラなので勘弁してください。
 『わが半生』(念のためだけど『わが闘争』と勘違いしないように)は1965年初版本。定価180円らしいが、私は500円+送料210円で入手した。



修行日記
ホーム