« 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