中央鯖ってなぁに?ってところをおさらい。
がっくしに参加している鯔鯖の中にdat(やsubject.txtとか)が保存されていますが
数百あるサーバの中から最新のdatを探すのは大変なので
中央鯖(スーパーノード)がどの鯔鯖にdatがあるかを記録しておいて
取得の度に中央鯖にdatのありかを問い合わせしています。
この中央鯖がもっている情報としては、
・オリジナルのURL(
http://qb5.2ch.net/operate/subject.txtなど)
・キャッシュのURL(
http://bora.example.jp/なんとか/subject.txtなど)
・ファイルサイズ
・取得時間
・MD5チェックサム
がある。
鯔鯖に設置されているorz.cgiは、アクセス毎に
1. 自身のキャッシュをチェック
2. なければ中央鯖に問い合わせ(getという。SQLはselect)
3. 生きているキャッシュがあればキャッシュを取得
4. キャッシュがなければオリジナルを取得
5. オリジナルをキャッシュ登録する(putという。SQLはreplace)
という動作を行う。
中央鯖が死ぬと、2、5の動作が詰まる為
がっくし全体が重くなるということが度々あったw