2006-08-22  ウィスパー3―その5―

ウィスパー3,ただいま試作品(α版あたり)を運用しています。またしてもいろんな問題に遭遇しています。いずれもDBの問題です。

性能が出ない

DBの性能がどうも出なくて困っています。要件では「要求してから応答するまでの時間は3秒以内であること」としています。実際,このとおり動いているのだが,どうも使ってみるとスカッとした使い心地ではないのです。

容量の効率を犠牲にすれば高速化できそうなのですが,そうなると下位サービスを修正しなければいけません。でもすでに稼動しているものを修正するのは嫌なのです。だからといって,このままでいいのかと言うとそれも不満で,両者の板ばさみに遭っております。

特定のクエリで全抽出が発生

ここでの全抽出とは,レコードを抽出する際の条件が機能せず,すべてのレコードを出力してしまう状態を指します。

いろんなクエリを投げてみたのだが,さっぱり応答が返って来ないクエリがあることに気づきました。原因は察しが付いています。特定のクエリでは,抽出条件が空になってしまうはずなのです。全体件数は数百万件あるので,それらをすべて出力しようとすると,とんでもないことになるのです。

この動作は仕様漏れです。仕様はこれから考えることにします。

システムを階層化することの難しさ

諸問題は,ウィスパー3がウィスパー2を土台にしたサービスであることに因ります。ウィスパー2とウィスパー3はDBを兼用しているのです。

実際に稼動させてみると,何やらかみ合わせの悪い歯車のようでお世辞にもうまく行っておりません。ウィスパー2ができた当初,ウィスパー3の仕様はほとんど白紙の状態でしたので後々,不都合が起きるのは当然という気がします。

DBを兼用せずに,独立させるのもひとつの手ですが,そこまではしないつもりです。今の段階では最適ではないというだけで,致命的な不都合は発生していないのです。

私,RDBMSと呼ばれるものを使い始めてまだ日が浅いのですが,この業界はかなり奥が深いと思います。深いどころか底なしなのかもしれませんね。