593 :
デフォルトの名無しさん:
名前:
E-mail:
内容:
ADSLとかCATVでグローバルIP保持者も多くなってるこのごろだし・・・
小さいwebサーバ+Replication(2chエージェントと呼称)を組み合わせて、
クラスターにしてしまうというのはだめ?
・2chサーバ:エージェントとスレッドのディレクトリ、repilcation指示、仮想2chエージェント
・2chエージェント:スレッドデータの管理と読みこみ・書きこみ代行
としてテキトーに以下考えてみた。
----
・常時接続可能な人達が、2chエージェントを自動起動
起動されたら、2chサーバに起動したことを通知
通知後、受け持ちスレッドがある場合、
2chサーバからreplication相手が誰か教えてくれるので、
その相手からデータをSyncronizeしてもらう。
Syncronize完了後、2chサーバに受け持ちスレッドのSyncronize完了通知をあげる。
2chサーバは、その2chエージェントのスレッドが利用可能であることをディレクトリに書く
・2chサーバは2chエージェントのディレクトリサービスを受け持ち、
2chエージェントが起動されたら起動通知要求を受け取り、
ディレクトリエントリに追加
・各2chエージェントは1スレッド〜nスレッド分のデータを保持する。
(インストール時にUD-Agentみたいに、マシン能力チェックを行い、nを決定)
2chエージェントの停止に備えて、複数の2chエージェントが
同一スレッドのデータをreplicationして保持する。
replication相手の指示は、2chサーバからときどき2chエージェントに対して行う。
・読みこみ要求はブラウザより2chサーバに行く
一括表示は、2chサーバがframeをきり、
保持しているディレクトリ情報にしたがって、1スレッドごとに具体的なURLを出力。
ブラウザ側は1スレッドごとに異なる2chエージェントに対して読みこみを行うことになる。
スレッド内の表示は、2chサーバがブラウザに対してmetaタグのrefreshで
2chエージェントへ誘導して表示
・書きこみ要求は2chエージェントが受ける
2chエージェントはreplication相手に対してr/w排他要求を出し、
自分で保持しているデータの更新を行う。
更新後は更新差分をreplication相手に送り、同時にr/w排他を取り下げる。
その後、2chサーバに対して、受持ち分スレッドデータの更新通知をだし、
スレ位置の変更を2chサーバに行わせる。
・新規スレッドの作成は2chサーバが行い、ディレクトリエントリを更新(スレッド情報)
空き2chエージェントがない場合、
2chサーバ自体がエージェントとなり、スレッドを受け持つ。
空き2chエージェントがある場合、
空き2chエージェントに対して、
・新規スレッドの作成依頼
・replication相手の指示
を行う。