■掲示板に戻る■ 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 最新50
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)