学校を終えゼファーのエンジンオイルとエレメントを交換しようとマフラーとってオイルとエレメントの交換に成功してマフラーをつけようとしたら付かなくて2時間苦戦した・・・結局バイク屋に任せるはめに・・・愛車を元の形に戻せない自分が嫌になった
今週はひとつ大きな仕事が片付いてだいぶ肩の荷が下りました。製品ができあがったわけじゃないんだけど、担当してるところの最大の問題が解決したので。サーバーとパソコンソフトと組になってる商品なんだけど、そのサーバーの主処理部分(「ビジネスロジック層」、といいます)を担当してます。ひとりで。サーバーを作っている人には聞くのもおそろしい「性能劣化」という現象があって、僕の作ったシステムはそれに見舞われていました。「性能劣化」というのは、生身の人間でも経験する現象なんだけど…普通なら仕事にかかる時間は、同時にこなさないといけない仕事の量にだいたい比例するものです。人間でもサーバーでも。負荷が増えればそれぞれにかかる時間もその分だけくらい増える。でも、限界を超えて負荷が高まると、比例するどころじゃないくらい時間がかかってしまうようになります。これが性能劣化。一人で作ってて、自分の使えるマシンパワーで負荷テストしてるうちは反応時間に全然問題なかったんですよ。ところが休日使って全員のマシン使って同時アクセスかけた途端……「10秒…15秒… 15秒だって!?」ミリ秒単位で終わってた処理が負荷10倍になった途端に15秒とか異常です。性能劣化とはこういうことかと初めて実物を見たのでした。それが1ヶ月前。そこから1ヶ月、ほんと映画化決定の涙ぐましい努力で最適化してきました。排他制御を切り分け切り詰め、データを憶えてくれるところ(「永続化層」、といいます)との通信はキャッシュしてなるべく減らし、必要そうなデータには先読みをかけ、返答に必要ない処理はがんがん遅延化、遅延した処理はもちろんバックグラウンドで継続。複雑になるロジック、たまにやらかす同期ミス。でもこれだけやっても、また全員のマシン使って負荷テストしてみないことにはほんとに速度改善できたかどうかわからないんです。そしてついにそれを試したのが今週。目標、5秒。せーので登録ボタンを一斉にクリックしたら「……一瞬!?」やつを倒しました。履歴書に書ける手柄が一つ増えました。いや転職とかしないけど。