■掲示板に戻る■ 1- 101- 201- 301- 401- 最新50キャッシュ型負荷分散システム開発スレッド
- 1 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:29 ID:asPJm1Ug
- このスレッドは、2ch.net の転送量削減を目指し、P2P-cache型の
負荷分散システムを開発するスレッドです。
参照:http://203.174.72.113/p2pcache/P2Pcache/frame.htm
その他参照スレは >>2-5 あたりに。
2ちゃんねるの軽量化・開発に関する他の話題は、
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&ls=20
その他、障害報告・動作報告等は、
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&ls=20
に、それぞれお願いいたします。
- 2 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:37 ID:asPJm1Ug
- ●2ちゃんねる開発統合スレッド(連絡用)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&ls=20
●キャッシュ型負荷分散システム開発スレッド (ここ)
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998908154&ls=20
●read.cgi開発スレッド(当面、bbs.cgiの話題も扱う)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&ls=20
●動作報告・障害報告スレッド
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&ls=20
●2ちゃんねるWiki(全体にわたる参照事項です)
http://www.gedoh.org/aki/2ch/wiki/yukiwiki.cgi?TopPage
- 3 : ̄ー ̄)ノ :01/08/27 19:40 ID:KeujS.U6
- 最新スクリプト
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html
- 4 :名無しさん@お腹いっぱい。 :01/08/27 19:41 ID:0cm50H8s
- とりあえず 本家サーバにROMのリクエストが来たら
305 Use Proxy
で追い返すって感じですかね?
- 5 : :01/08/27 19:42 ID:xheJAhZs
- 本家サーバにROMのリクエストが来たら
てきとーなキャッシュ鯖に飛ばすんじゃないのかな?
- 6 :名無しさん@お腹いっぱい。 :01/08/27 19:44 ID:xheJAhZs
- 基本的には、本家2ch鯖は、書き込み処理と
キャッシュ鯖への誘導って感じ??
- 7 :名無しさん@お腹いっぱい。 :01/08/27 19:46 ID:cn52pBwI
- この対応策は、ひろゆきさんの参加が絶対条件ですね。
- 8 : ̄ー ̄)ノ :01/08/27 19:46 ID:KeujS.U6
- ROMの持ってるキャッシュとの差分だけ送るなんて器用な真似できませんかね
アクセスは専用ブラウザのみにして・・
- 9 :名無しさん@お腹いっぱい。 :01/08/27 19:47 ID:0cm50H8s
- 問題は そのキャッシュをどこに置くんじゃゴルァってとこか......
- 10 :名無しさん@お腹いっぱい。 :01/08/27 19:47 ID:vN9r/JlA
- >>4
302 のほうが良いでしょう。
で、 >>5 が言ってるように
Location: でキャッシュ鯖にとばす、と。
- 11 :名無しさん@お腹いっぱい。 :01/08/27 19:48 ID:cn52pBwI
- いまの2ちゃんねるの運用実績を見る限り、サーバの移転、仕様の変更、新規板の設立などは、よく言えばフレキシブル、悪く言うと前置きや準備なしにいきなり行われています。
こういうシステムになると、相互のコミュニケートが必要なので、ひろゆきさんが参加しないとお手上げでしょう。
- 12 :Perler ◆GSi39OA6 :01/08/27 19:51 ID:95LP96f6
- ftp://210.170.170.131/incoming/perler/mirror/mirror.pl
に、ダウンロード専用スクリプトをおきました。こいつをcronで走らせる算段です。
今のところデバッグで、tech板の取得しかしないです。
実行カレントDir以下の、dat/tech/dat/*datにキャッシュファイルを作ります。
このまま実行すると巨大になるので、キャッシュ管理ファイル(index.dat)も一緒に
アップロードしてあります。
./dat/tech/index.dat
に置くと、何個かのファイルしか取得してきません。
現在、index2.htmlの自動生成をやっています。差分取得はさらにその後です。
- 13 :4 :01/08/27 19:53 ID:0cm50H8s
- >>10 "302 Found"だと立てるサーバは「キャッシュ」というより「ミラー」と言った方が
しっくりくるけど......まぁ結果的に本家のトラフィックが減ればどっちでもいいんだけど
- 14 : ̄ー ̄)ノ :01/08/27 19:55 ID:KeujS.U6
- 2chへのアクセスは専用ブラウザonlyにして
各専用ブラウザにキャッシュ持たせて
まず、P2Pで最も新しいキャッシュを探して
差分を本家サーバーから落とせたら・・・
- 15 :名無しさん@お腹いっぱい。 :01/08/27 19:58 ID:95LP96f6
- >>14
> 2chへのアクセスは専用ブラウザonlyにして
> 各専用ブラウザにキャッシュ持たせて
ここまでは、2ch.net上のread.cgiを消せばかちゅ〜しゃ等が代わりになりますよね。
- 16 : ̄ー ̄)ノ :01/08/27 19:59 ID:KeujS.U6
- http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.pl
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/index.dat
アプしときました
- 17 :名無しさん@お腹いっぱい。 :01/08/27 20:00 ID:HuAyIkhI
- つーか、なんで↓でやらないの?
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284
- 18 :名無しさん ◆0CYhqCZM :01/08/27 20:01 ID:6kfMn/mA
- >>16
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.plは
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.txt
にした方がいいのでは?
- 19 :名無しさん@お腹いっぱい。 :01/08/27 20:03 ID:95LP96f6
- >>17
・実質、read.cgi部のミラー化でありP2Pじゃないこと
・既に仕様がある程度固まり、実際に開発に入ったため、仕様策定のスレッドと分ける必要性が
出てきたこと
以上の2つでスレ分けを提案しました。
- 20 : ̄ー ̄)ノ :01/08/27 20:04 ID:KeujS.U6
- >>15
そうですね
で、専用ブラウザにP2Pの機能を持たせて
各2ちゃんねらー同士で最新キャッシュの問い合わせをしあって
まぁ、とりあえず本家サーバーから落とすのは差分データーのみに出来たら・・・・
でもこれだとキャッシュ問い合わせに時間がかかりすぎるかな?
- 21 : ̄ー ̄)ノ :01/08/27 20:06 ID:KeujS.U6
- >>18
おっしゃる通りです
変更しときました
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.txt
- 22 :名無しさん@お腹いっぱい。 :01/08/27 20:07 ID:HuAyIkhI
- >>19
いや、>>14なんかはあっちで出てる案と似てるし、
別にあっちも完全P2P化で決定ってわけでもないですよ。
こっちは完全に固定キャッシュサーバでいくのなら分かれていても
いいですが、そうでないならまとまっていた方が効率が良いかな、と思いまして。
- 23 : ̄ー ̄)ノ :01/08/27 20:11 ID:KeujS.U6
- とりあえずread.cgiに差分送信機能だけでも盛り込めないですかね
クライアントがIEだと難しいですかね
- 24 :音楽侍 ◆NtVkSITE :01/08/27 20:14 ID:cn52pBwI
- >>22
ここは、サーバのミラーリング的手法だと思ったんですが。
P2Pとはちょっと違うと思います。
一緒にやるとたぶん混乱します。
- 25 :んななし :01/08/27 20:18 ID:wPSw05wY
- >>10
というか、302にしないと、根スケ4.X(どれだったか忘れた)が、Locationを処理してくんないよ。
- 26 : ̄ー ̄)ノ :01/08/27 20:22 ID:KeujS.U6
- サーバーのミラーリンクをBig-serverが許してくれるでしょうか・・
- 27 :名無しさん@お腹いっぱい。 :01/08/27 20:32 ID:RT358Ii.
- すげ、、このコード
sub connect_soc 勉強に使わせてもらいます>>perler様 (^^
部外者しつれい ROMに戻ります
- 28 :Perler ◆GSi39OA6 :01/08/27 20:43 ID:95LP96f6
- >>27
本来はモジュール使うべきところなんだけどね。。。>connect_soc
あと10分ほどで、index2.html作成部をアップロードできると思います。
- 29 :ななし :01/08/27 20:52 ID:ev7f8jX.
- ひろゆきは今なにしてんだろ?、。
本人がでないと、かなり苦しいのでは?
- 30 :Perler ◆GSi39OA6 :01/08/27 20:53 ID:95LP96f6
- ftp://210.170.170.131/incoming/perler/mirror/mirror.pl.1
ftp://210.170.170.131/incoming/perler/mirror/index2.pl
をアップロードしました。ディレクトリ構造は一緒です。
今のところ、index2.plは、ファイルスタンプをみてますので、多分sageに対応していないです。
sage対応は後ほど入れる予定。
mirror.plにコマンドライン引数が入れられるように改変中。
- 31 : ̄ー ̄)ノ :01/08/27 20:53 ID:KeujS.U6
- ひろゆきと後Big-server側の人も来て欲しいね
- 32 : ̄ー ̄)ノ :01/08/27 20:58 ID:KeujS.U6
- >>30
上のファイル無いけど?
- 33 :名無しさん@お腹いっぱい。 :01/08/27 21:00 ID:nDMTsrLE
- >>30
>sage対応は後ほど入れる予定。
一時的かもしれんが、今みたいに TOP10 も表示せず
スレッド一覧だけ表示するようになれば、、、
sage機能要らないじゃん?
- 34 :27 :01/08/27 21:01 ID:Iph3USPw
- なるほど、昨日のQuickhackといい勉強になりまくってます。
FW挟んでるんでテストに参加出来ないのが悲しいです。
度々しつれいします 今度こそROMに戻ります。
- 35 :Perler ◆GSi39OA6 :01/08/27 21:02 ID:95LP96f6
- >>651
お疲れ様です。ありがとうございました。
- 36 :名無しさん@お腹いっぱい。 :01/08/27 21:03 ID:5zQpe5GQ
- >>21
今会社から帰ってきたんで何のコードかさっぱりわからないんだが、
#### ソケット S をバッファするようにする
select(S); $| = 1; select(stdout);
これってバッファしないようにする。じゃないかな
- 37 :Perler ◆GSi39OA6 :01/08/27 21:03 ID:95LP96f6
- >>32
すみません。mirror.pl.1入れなおしました。
- 38 : ̄ー ̄)ノ :01/08/27 21:10 ID:KeujS.U6
- http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror2.pl.1
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/index2.txt
あげておきました
でも、index2.plはindex2.txtにリネームしてます
- 39 : ̄ー ̄)ノ :01/08/27 21:12 ID:KeujS.U6
- http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror2.pl.1
じゃないですね
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/mirror/mirror.pl.1
でした
- 40 :名無しさん@お腹いっぱい。 :01/08/27 21:36 ID:0cm50H8s
- ところで ミラー側からpullするスクリプトができれば あとは本家側のread.cgi
とかで(ってか.htaccessのRedirectディレクティブでもいいんだっけ?)
リダイレクトさせればいいんだけど ミラーサーバをどこに置くのよ?ってのが
問題...... 本格的に動かしたら アクセス量は半端じゃないでしょう......
- 41 :音楽侍 ◆NtVkSITE :01/08/27 21:43 ID:cn52pBwI
- なんか、うまく動いてくれないです・・・
error: open ./dat/tech/965815778.dat for writingで引っかかります。
いちおう、/dat/tech/は作ってあるのですが、datはあらかじめ必要なんでしょうか?
- 42 :名無しさん@お腹いっぱい。 :01/08/27 21:50 ID:tYWhFzr.
- 最終的な解決はp2pあたりが有望だけど、サーバ、クライアントの開発や環境構築と
deamonが動かせる環境の確保が必要なのでしばらく時間がかかると思われ。
こちらは、基本的には現行のhttpを使用して、鯖の確保と受け渡しcgiの作成のみで
サクッと運用しちゃいましょうがテーマでしょう。
ただし、全板キャッシュするとそれなりの容量と帯域を使うので、最大で数百人〜数千人が
利用しないと旨みが少ないし、板ごとのキャッシュじゃ2ch.netに振り分けの負荷が掛かる。
個人でこんなサーバを持つのは難しいので、対象はISP側のレンタルスペースが有望。
ただし、perl以外のcgiが許される所は少ないし、cronなんて・・・。
そのため、全投稿を受け付ける2ch.netのbbs.cgiへキャッシュ鯖への転送処理を入れ、
ミラー側では受け口となるmirror.cgiと、現行のread.cgiが走らすのが一番簡単そうな
感じがします。バケツリレー方式も可能だし、投稿ごとに送っても大丈夫。
ISP側の権利問題は、ミラー側で自由にフロントエンドを拡張できるので、その辺で解決。
あとは、ミラーのリンクを自動にしたら勝手に鯖は増えるけど、悪用されちゃうかな。
cgiもperl版を作れば、有志によるミラーが自然と増える気がします。
# ブラウザ側でも、JavaScriptでdatの展開しちゃえば、差分取り出しできそうですね
- 43 :Perler ◆GSi39OA6 :01/08/27 21:49 ID:95LP96f6
- >>41
dat/tech/dat/が必要です。。
- 44 :名無しさん@お腹いっぱい。 :01/08/27 21:51 ID:vN9r/JlA
- >>40
確かにそうですね。
とりあえず過去ログ参照だけでもミラー鯖にしたほうが
転送料は減るんじゃないかな。
最低限1鯖を10〜20のホストがミラーだな。
DNS ラウンドロビンだけじゃなくて 302 の Location で負荷分散
するなら、鯖数 50〜100 はいけるかな?
あんまりキャッシュ鯖が増えたら意味無くなるかな?
3段構成くらいにして、master→slave→cache とか。
こうすれば、master の負荷は結構減るかな。
速報板とか、アクセスの激しいのはどうするべきだろうか。
- 45 :音楽侍 ◆NtVkSITE :01/08/27 21:53 ID:92bYvmYA
- >>43
あ、了解です。
ディレクトリなかったら自動で作る仕組みも欲しいですね・・・
(というか、書けって怒られてしまいそう)
- 46 :Perler ◆GSi39OA6 :01/08/27 21:55 ID:95LP96f6
- >>44
>3段構成くらいにして、master→slave→cache とか。
これは視野に入れて開発してます。現行のmirror.plで対応可能。
というか、受け取ったデータをいじらずにそのまま
2ch.netと同じ階層構造で保存してやってるだけだけど。
- 47 :Perler ◆GSi39OA6 :01/08/27 22:05 ID:95LP96f6
- 取得の方がrangeに対応してませんが、閲覧の方は問題なくできるように
なってきています。
そろそろプロパガンダも兼ねて公開テストも行いたいんですが、
誰かCGI利用可能なHTTPサーバーで公開しても良いという方はいませんかね。。。
- 48 :名無しさん@お腹いっぱい。 :01/08/27 22:05 ID:0cm50H8s
- >>44 DNSのラウンドロビンでやったらカキコのアクセスもミラーの方に
行っちゃうけど......bbs.cgiへのアクセスを本家側にリダイレクトさせれば
いいんだろうけど ミラー側のaccess_logにPOSTの記録が残るのを嫌がる
人が出てくるかも......ってかPOSTを他のホストにリダイレクトさせると
ブラウザが警告を出すんじゃなかったっけ?
- 49 :名無しさん@お腹いっぱい。 :01/08/27 22:09 ID:0cm50H8s
- オレの自宅で使ってるプロバイダ(CATV)はサーバ立て禁止......
仕事先のを使ったらゴルァになるだろうし......
- 50 :名無しさん@お腹いっぱい。 :01/08/27 22:17 ID:vN9r/JlA
- >>48
POST、というか bbs.cgi 周辺は全て master に置けば解決。
とは逝っても信用出来ない鯖だと、
html の FORM action URI を書き換えてしまう
かもしれんな。
- 51 :sage ◆qXAQxUxI :01/08/27 22:31 ID:LNUidRsc
- やっぱりURL自体を分散しようよ。
1.Oracle使って同期レプリケーションを組んで、
2.WebAPサーバをDBサーバと同じ台数稼動。
- 52 :音楽侍 ◆NtVkSITE :01/08/27 22:34 ID:92bYvmYA
- >>47
こっそり建てることは出来ますけど、公開となるとちょっと。
- 53 :49 :01/08/27 22:37 ID:0cm50H8s
- >>52 同意(w まぁここの開発メンバぐらいしか来ないという確証が
あれば 仕事先のマシンにこっそり仕掛けることぐらいしても
バレないとは思うけど...... いや仕事先にバレるだけでなく
そのマシンがヘンなやつらに目をつけられちゃうと......
- 54 :age ◆AWcg9OTs :01/08/27 22:39 ID:LNUidRsc
- >>52
確かに。うちもそう。
うちはインターリンクってゆープロバイダで
固定IPで立ててるけど、2chで公開なんか
しようもんなら、あまりのアクセスの多さに
文句くるだろうなあ。。。
関係ないっすけど、技術者集まって、一回
OFF会しません?
- 55 :名無しさん@お腹いっぱい。 :01/08/27 22:40 ID:eMjgyMpI
- なんか NetNews のようなことができないかと考えてみたり。
次100 最新50read.cgi ver5.26+ (01/10/21-)