セキュリティに問題のあるコードの改善を行いました。
1.1以前をお使いの方はバージョンアップを強く推奨します。
動作確認はNucleus 3.23(UTF-8)、PHP 4.4.4環境で行っています。動作確認報告、バグ報告はこのエントリへ、コメント・トラックバックをお願いします。
blog.bulknews.netでmiyagawaさんがSimilarity Searchの結果をキャッシュするCGIを発表していました。
blog.bulknews.net: Similarity Search の負荷軽減に jscache
この問題を解消するために jscache という CGI スクリプトを作成しました(別名: くっつきキャッシュ)。このスクリプトのやっていることは単純で、リモートの js を取得して、サーバ側にキャッシュして保存。キャッシュ有効期間中は自分のサーバからコンテンツを吐き出すようにするものです。これならホスト側のサーバ負荷に表示が引きずられることはありません。
ならば、拙作のNP_SimilaritySearchにも同じ機能をつけてしまおう!という単純な発想でプラグインをアップデートしてみました。NP_SimilaritySearchではデータベースを利用してキャッシュを行います。
ダウンロードはこちら [NP_SimilaritySearch 1.1.0][144clicks]
※セキュリティバグをFixしたNP_SimilaritySearch v1.2をご利用ください。
これで大成功・・・といいたいところですが、確かに2回目からのアクセスは高速になったものの、最初のアクセスはかなり重い感じがします。これは回線の問題なのか、それとも実装の問題なのか・・・・。う?む。
(5/16追記)
時間帯によって重いことがあるようですがこれはbulkfeeds.netが混んでいるためのようです。
あと、くっつきキャッシュのようにもうちょっと汎用的なキャッシュPluginを作ったほうがイイのかな(NP_JsCacheみたいなやつ)。でも、そういうプラグインはもう既にありそうな気がするのでちょっと調べてみてからにしよう。