2006-06-30 [長年日記]
_ すみません、データが飛びました
リニューアルテスト版周りのサーバー構成を大幅に変更しようと作業していたら、リニューアルサイト用DBのデータが吹っ飛んでしまいました。状況・原因ともによく分からないのですが、いくつかのテーブルが消えてしまい、データを復元するのが難しい状態になったため、初期データから入れ直しています。原因不明のため、またすぐにおかしくなる可能性もありますので、ご注意ください。
どうやら原因がわかった
今までレプリケーションスレーブ側にテストDBを作ってテストをしていたんだけど、そろそろ本番環境に近いものも用意しておこうかと、マスター側でDBをいじっているうちに、テストDBと同名のdropがいくつかレプリケーション側に流れちゃって……、ということらしい(レプリケーションがdropの不整合で止まっていた)。作業ミスでした、すみません。
_ 本番環境への移行を始めました
リニューアル版の本番環境への移行を始めました。MM/Memo以外の機能についてはいったん停止し、リニューアル版で該当する機能がある場合は、そのURLにリダイレクトをかけています。
また完成度は低いんですが、旧版を動かしながら新版を動かしていると、負荷的な悪影響が大きく、また管理も複雑になってしまうため、上記のようなミスが起こりやすくなるので、一気に新版に差し替えつつ、欠けている部分はおいおい埋めていく、といった形を取ることにします。
MM/Memoについては、まだ一通りの機能を新版に搭載するには時間がかかりそうなので、しばらく旧版のまま動かしておきます。
_ tDiaryでリバースプロキシを使った場合のRSS
リバースプロキシを使ったら、RSS内の絶対URLがリバースプロキシ越しにアクセスしたURL(http://localhost:8080/〜とか)になってしまった場合、tdiary.confに
@base_url="http://正しいルートURL/"
を追加すると直る。
_ ノードAPIごしで属性インデックスを使いたい場合
Hyper Estraierのノードマスタを使って作成したノードでは、もちろん属性インデックスは作成されないし、ノードAPIには属性インデックスを作成するコマンドは用意されていない。
属性インデックスは文書を登録する前に作成しておく必要があるので、ノードマスタから新しいノードを作成したら、ノードマスタをいったん終了し、コマンドラインからestcmdを使って該当のノードインデックス([ノードマスタディレクトリ]/_node/[ノード名])に属性インデックスを作成する必要がある。その後は、再びノードマスタを立ち上げて、ふつうにドキュメントを追加していくだけでいい。
というわけで、リニューアル版1470.netのユーザーごとのメモ検索(http://1470.net/user/[ユーザーID]/search/)で、検索結果をユーザーで絞るのにユーザーID属性に属性インデックスをつけてあげたら、検索がまともな速度で動くようになったよ。最初属性インデックスなしでやったら、2万ドキュメントくらいで目に見えて検索速度が落ちたけど、属性インデックスをつけたら2万ドキュメントくらいでもまだまだ余裕がありそう。
次にスケール的な壁にぶつかった場合は、P2Pで分散させることを考える必要が出てくるんだろうけど、それはどのくらい先のことだろう。うちではそこまで考える必要は出てこないかなー。
すみません、嘘でした
ノードマスターの機能として、属性インデックスを作成する機能がありました。Hyper Estraier開発者のmikioさんのコメントによれば、
_confファイルのattrindexをいじると、ノードを作成した時に自動的にインデックスが張られるようになりまっす。
ということでした。
ノードマスターを起動する前に、あらかじめ_confファイルに属性インデックスに関する設定を記述しておくことで、そのマスターで作られたノードに、指定した属性インデックスが作られるようになります。
そんなところに作成手段があったのかorz...。




ProxyPreserveHost On
とかではダメですか?
今回pound+lighttpd+fastcgi構成にしたんですけど、ホスト名はそのまま渡るんですが、ポートがlighttpd側のポートでRSSに出力されてしまったんですよね。
リバースプロキシやhttpdレベルで解決できるならそれでもいいですけど、@base_url設定が最優先で使われるみたいなんで、面倒くさいときには@base_url設定しちゃった方が確実そうです。
旧版MM/Memoですが、登録用フォームが404になってます
http://1470.net/mm/memo_form.html
すみません、RewriteRule間違ってました。今なおしたんで、アクセスできるようになったと思います。
_confファイルのattrindexをいじると、ノードを作成した時に自動的にインデックスが張られるようになりまっす。あと、メモリに余裕があれば、specialcacheに属性名を指定すると、その属性の参照がすこぶる早くなります。
> mikioさん
情報ありがとうございます。そんなところで指定できたのか……。specialcacheの利用については、負荷状況を見ながら検討させていただきます。