« FastCGI のインストール | メイン | そろそろ寝ないとやばいですね »
2005年06月12日
Hyper Estraier を FastCGI で動かす
FastCGI も何とか動いているようなので、とりあえず Hyper Estraier を FastCGI で動かしてみました。
インデキシングオプションに -apn を付け忘れたので、再構築中です。再構築が終わったら、サンプルページのデータの更新する方向で。今のデータは、オプションに -apn をつけないでインデキシングしたデータです。
FastCGI の方が、かなり良い結果が得れている模様。いい感じ。
そういえば、日付の型は、数値型と文字列型のどちらがいいんだろうか。とりあえず、以下の文字列型を使ってるのだけど。数値型の方が、インデックスサイズを抑えられそうな気もしてきたぞ。
YYYY/MM/DD形式(1978/02/11 18:05:32) → 日付として解釈される。
MySQL のデータを流しているので DATETIME型 の YYYY-MM-DD HH:MM:SS も日付と解釈されると便利だなぁ。
げ、まずいことに気がついた。
estseek.fcgiはインデックスをロックし続けるので、Webサーバの稼働中はインデックスを更新することができません。インデックスを更新するためには、estcmdで更新命令を掛けてから、Webサーバを再起動することになります。
常駐するので当然なんだけど。うーん。5分おきに再起動とか馬鹿だしなー。
あ。最新のニュース記事は MySQL で SELECT することにして、毎日深夜(4時ごろ)にインデックスを更新でいいか。1日分の記事(約3000記事)なら MySQL でもさくさく動くし。というか、オンメモリ構成にすれば、かなりの件数でもさくさく動くとか。こっちも実験しないと。
いずれにせよ、フロントプログラムを工夫しなければならないことは事実だな。もう少し実験を重ねてから、バックエンド採用のために構成を検討しよう。まずは、クローラーの改善だなぁ。
【関連情報】
・Hyper Estraier - てすとん
http://labs.ceek.jp/est/index.html
2005年06月12日 23:20 | Technology
トラックバック
コメント
雑誌いらずのニュースサイトの図鑑
http://mom.moo.jp/news-site-zukan/
を管理しています。
CEEKZさんのサイトが素晴らしいので、
図鑑の1ページめにリンクさせていただきました。
RSSのすござを一人でも多くの方に知ってもらいたくて 紹介させていただいてます。
今後ともよろしくお願いいたします。
投稿者 fatacy : 2005年06月30日 14:37
>> fatacy さん
リンクありがとうございます。
全体の RSS の配信数は、やたらと多いので、分野別にとるのがいいかもです。
投稿者 ceekz : 2005年06月30日 20:16
ロックについては、
1) estcmdを起動してロック待ちに入るのを待つ
2) estseek.cgiに -HUP シグナルを送る
で結構改善されます。
投稿者 seagull : 2005年07月05日 10:42
>> seagull さん
更新スタートは、それでいけそうですね。更新中は、止めちゃうのがいいかなぁ。
投稿者 ceekz : 2005年07月05日 18:14
止めちゃうしか無いと思います。
幸いにして、
1) -HUPでCGIを落としても、勝手に再起動される。
(.htaccessでそう指定していれば)
2) HTTPリクエストがかかり、estseek.cgiがインデックスの初回オープンしようとしても、
更新でロックされていれば勝手に待つので、HTTPリクエストの遅延だけで済む。
(デフォルトでは16秒程度?リトライすると思います)
ので、更新期間が十分に短ければ、結構実用的ではないかと。
投稿者 seagull : 2005年07月06日 12:20
>> seagull さん
止めるというのは、インデックスの複製を作らずに、仰るような手順をとる意味でした。誤解を招きすみません。
フロント側は、別に作って estseek.fcgi と通信するようにするので、タイムアウトを検出すればいけそう。
投稿者 ceekz : 2005年07月06日 15:30