カウンタについての覚書

<< 戻る   トップ >>

魚津市桃山運動公園より富山湾を望む

たかがカウンタで停滞しているわけだが、練習問題としての Derby 利用カウンタというものはちゃんと修了していて、今は「思いつきでカウンタを RDBMS に移行するとかいってしまったけれども、本当にメリットあるのか?」というところで考え中だ。

メリットとしては、カウンタが随時更新されるので、システムのクラッシュなどの場合の堅牢さや復旧がデータベースシステムの堅牢さと復旧しやすさにしたがう、というところだ。問題は、そこまで固いシステムにする必要があるのか?というところである。基本的にサーバ museo-anomimo だけで運用しているカウンターである。妻も利用していないこともないのだが、基本的に注目していないように思えるので、現時点で運用に関心を持っているのは私だけだ。確かにカウンターのクラッシュは避けたい事象だが、壊れたら壊れた「ま、いいか」という程度の運用要求しかない。万が一の場合も、月ごとのバックアップはあるので、一月前までのカウントは回復可能だ。これはこれでよいと思う。

デメリット、というよりも既存のカウンタのメリットが、オンメモリのサーブレットで動作して、そりゃ場合によってはシステムがディスクスワップする可能性はあるものの原則としてディスクアクセスはなく快速で低負荷、というものだ。快速・低負荷と堅牢さのトレードオフになっているわけで、結局運用者がどう選択するか、というところだ。現時点では快速・低負荷を選択したい。

もう一点、考慮しなくてはいけないのがバックアップの録りやすさだ。今のところ、/var/www/etc にカウントデータ counter.xml ( java.util.Properties の XML 表記 ) で保存している。データベースにしておけば、他のデータベース (例えば、鴨乃嘴南蛮 CMS データベース) もろともゴソッとバックアップすりゃいいじゃないか、ということで一手間減る。例えば MySQL では /var/lib/mysql だ。derby はデフォルトのデータベースディレクトリがないように (現時点では) 思えるが、統一しておけばよいか。とも思ったのだが、統一するにしても counter.xml ファイルを同じディレクトリいれておけばよい、という話だけだ。その counter.xml ファイルを /var/www/etc ではなく /var/lib/mysql に放り込んでしまえばよいのだ (乱暴な手口である)。この点でも、とくにデータベース化するメリットはないと言ってよかろう。

それでは、カウンタプログラムはもとのままでよいかというと、やはり改善すべき点はある。例えば、データベースファイルの所在などを見直して counter.xml を /var/www/data に移す、とした場合である。現時点ではハードコードされていて、変更に伴いソースファイルの編集だけではなく再コンパイル、war ファイルの再編成が必要になる。一応ファイル名はただ一ヶ所でセットするようにしてはあるが、あまり芳しくはない。context.xml で設定できるように改良しておく必要はあるだろう。そうなると、 JNDI 「経由」で情報を取得する必要がある。情報の元は Tomcat であり、これからよく検討しなくてはいけないのは Tomcat 設定ファイル server.xml / context.xml の <context> 要素中の設定ということになる。そう、ようやく分かった。「敵は Tomcat にあり」。


作成: 2012-09-24 14:41:33.0更新: 2012-09-25 13:44:04.0
http://museo-anonimo.jp/nanban/?id=1132,http://museo-anonimo.jp/nanban/tr/1132