bbs.cgi 改良案スレッド
- 1 名前:名無し娘。 ◆vP.bOZFQ :01/08/27 23:19 ID:ihlstQzQ
- このスレッドでは、現行の bbs.cgi の改良案、及び、次世代 bbs.cgi の
検討を行います。
但し、現行の bbs.cgi が公開されることはありません。
それを前提に、できることをご検討下さい。
他の話題は、それぞれ以下のスレッドへお願いします。
●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
◆キャッシュ型負荷分散システムの概観
http://203.174.72.113/p2pcache/P2Pcache/frame.htm
◆2chのような掲示板システムってP2Pで
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284&ls=20
●プログラマが2chを救う!?2(read.cgi開発スレッド)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&ls=20
●スキルの高い方知恵を貸してください2号(HTMLの整形、軽量化)
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537&ls=20
●2chの動作報告はここで。(動作報告・障害報告スレッド)
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998808733&ls=20
●2ちゃんねるWikiとTiki(全体にわたる参照事項です)
http://www.gedoh.org/aki/2ch/wiki/yukiwiki.cgi?TopPage
http://www.gedoh.org/aki/2ch/tiki/
◆各種ソースコード最新版
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html
- 2 名前:デフォルトの名無しさん :01/08/27 23:24 ID:IZphmN4k
- cgiの出来は変わらないのに、
ここ2日位人口が少ないねえ。
この原因を解析する方が実収入に直結するよ。
- 3 名前:デフォルトの名無しさん :01/08/27 23:29 ID:92bYvmYA
- >>2
いみがわからないっす。
主語がないっす。
- 4 名前:♯6411 :01/08/28 00:36 ID:8QKJAcfc
- 引っ越してきました♪
とりあえず、仕様修正案をまとめてみませんか?
漏れが把握してるもの、ちうか漏れが言い出しっぺのもの;
・あぼーんの固定レコード化
- あぼーん時刻を書き込んでもらう
- 特定のフィールドをあぼーんがわかる状態にし、
あとは「あぼーん」を書き込む、さもなくば
whitespaceで塗りつぶす。
・投稿日のフィールドに、秒を含めた方が、使いでが
あるかもしれず。Last-Modified粒度を上げるため。
(read.cgiで出力する際に削るのは可)
…曜日は復活きぼんぬ
- 5 名前:♯6411 :01/08/28 00:40 ID:8QKJAcfc
- >>2 >>3 イパーン人のことを指してると思われ。
トップページの豹変など、
使い勝手が変わってることにまごついてると思われ。
…ちうか漏れの常駐板がdj…
- 6 名前::~名前() :01/08/28 00:44 ID:eLo9c1WA
- 確かに、変なマークを使うより、現在の日付フィールドを使用した方が
現行のフォーマットに沿った扱いが出来るから、良いかもしれない。
- 7 名前:名無しさん@揚げ足 :01/08/28 00:45 ID:TglqpBlo
- 年のフィールドは1年以上前のレス以外非表示でイイと思う
つか過疎板で上げ荒らし食らわない限り表示の意味無いし
- 8 名前:デフォルトの名無しさん :01/08/28 00:46 ID:CidB2Qak
- bbs.cgiをアプレット化してクライアント側で
フローティングスレッドを実装するってのは駄目?
- 9 名前::~名前() :01/08/28 00:48 ID:eLo9c1WA
- >4
Last-Modifiedは、ファイルの更新日時を使うから、特に投稿日フィールドに
含める必要は無いと思う。
曜日は……向こうのスレで相談しましょう。
- 10 名前:名無し娘。 ◆vP.bOZFQ :01/08/28 00:49 ID:WWWqIZKM
- >>9
曜日はここでいいんですよ。bbs.cgiが.datに吐いていますから。
- 11 名前:名無しさん@揚げ足 :01/08/28 00:54 ID:TglqpBlo
- 負荷の話なのでオフトピ
100レス書き込まれる毎に、その分gzipかけちゃうのはどうでしょう?
先頭100レス、次の100レスと行くならHit率高そう
要read.cgi対応
- 12 名前:♯6411 :01/08/28 00:54 ID:8QKJAcfc
- >>9 L-Mは、部分出力する際に、
「指定範囲の最後の(あぼーん含む)日時」に
した方が、キャッシュ串などとの相性が
よくなると思われ。というわけで提案してるのです。
いま、範囲指定L-Mのあくどい(効果的な?)
使い方を考えてます。まだ思考実験の段階ですが。
- 13 名前::~名前() :01/08/28 00:54 ID:eLo9c1WA
- >10
あ、ホントだ。datから消えてる。ということは、誰かがbbs.cgiをいじったのか。
- 14 名前:♯6411 :01/08/28 00:56 ID:8QKJAcfc
- >>11 いまのところCPU負荷が取りざたされてない
っぽいので、CPU負荷が無視できなくなった
時点で考えてもよろしかと思われ。
- 15 名前:♯6411 :01/08/28 00:56 ID:8QKJAcfc
- >>13 曜日が消え失せたのは日曜の早朝からでは?
- 16 名前:名無しさん@揚げ足 :01/08/28 01:11 ID:TglqpBlo
- "レスを全部読む 最新レス50 レス1−100"を"レスを全部読む レス1−100
最新レス50"の順にして、100レス規制中はアンカータグ一つで括ればURL分削れます
またどちらかのリンクを削るのもアリじゃないでしょうか?
- 17 名前:デフォルトの名無しさん :01/08/28 01:41 ID:ETDX8Tus
- 曜日は残した方がいいと思う。
年も、下二桁残したほうがいいんじゃないかな。googleで引っかけたりした
時に年が分からないと不便だし。
同じ理由で[掲示板に戻る]も残して欲しいけど、これはread.cgiだよね。
…てゆーか、根本的にすれ違いな気が(;´д`)
言いたいことは、曜日や年などの基本的情報は残して欲しいってことです・・・。
- 18 名前:デフォルトの名無しさん :01/08/28 02:13 ID:J/lI0E9.
- read.cgiやdat直読みブラウザとのかねあいもあるけど、
datのフォーマットを根本から見直しちゃダメ?
日付なんてepochからの通算秒で保存しておいて
read.cgiの方で変換して出力でいいと思うんだけど。
- 19 名前:デフォルトの名無しさん :01/08/28 02:31 ID:vePMv5wk
- http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998903558&st=681&to=681
「2 mod_gzipに関しては、交渉難航中(対Hurricane Electric) 」
らしいからdatのgzip化を考えた方がいいんじゃない?
- 20 名前:デフォルトの名無しさん :01/08/28 03:13 ID:ri5PuQhY
- レスを全部読むを無くせば、というのは思いっきりガイシュツ?
- 21 名前:名無し娘。 ◆vP.bOZFQ :01/08/28 03:18 ID:WWWqIZKM
- >>20
read.cgiの方でガイシュツです。
- 22 名前:デフォルトの名無しさん :01/08/28 03:21 ID:RxA.u.Us
- お笑い小咄板は消したほうがいいかもしれないな。なんとなく。
- 23 名前::~名前() :01/08/28 10:39 ID:eLo9c1WA
- せっかくだから、このスレにも貼ります。あと、ちょと変更。
次世代?2ch .datとread.cgi、その他関連ファイルの仕様案 その2
【その1からの変更点】
・マークの取り扱い、セパレータを変更するのではなく、日付フィールドに
それを納めるようにする。
・その他、色々(主に独り言)と追加。
【要点】
・bbs.cgiがインデックスファイルを作成すること
・削除処理は、レス内容塗りつぶしで行い、datのサイズを変えないこと
(削除処理でインデックスファイルを更新しない様にするため)
・削除処理の履歴をdatファイルに記録すること
・datそのものの差分を取得するcgiを作成すること
・現行のdatファイルの仕様から*なるべく*逸脱しない。「かちゅーしゃ」
等の専用UAとの親和性も考慮すること。
◎インデックスファイル
インデックスファイルは、bbs.cgiが各レス書き込み時に、書き込み後の
datファイルのサイズを記録し、レス番号と関連付ける。
たとえばレス番号nのレスを読み出したい場合は、datファイルより、
idx[n-1] 〜 idx[n] - 1 の範囲を読み出す。
ファイルフォーマットは未定。32bitバイナリのベタファイルで十分だと思う。
◎マーク文字列
datファイルの日付フィールドをレスの種別を示すためのマークとして
使用する。日付フィールドは最低14バイト確保されるものとし、その中に
特定の文字列を書き込む事により、種別を設定する。
例:
「01/06/23 21:26」 通常レス
「DEL+9999999999」 削除レス("DEL+" + time_t)
「DEL*9999999999」 削除履歴("DEL*" + time_t)
「STOP」 スレッドストップされたスレッド
◎削除処理
削除スクリプトは、該当レスの内容を'#'で 塗りつぶすことで、削除処理
を行う。datファイルのサイズを変更しない。
(インデックスファイルの整合性を保つため)
また、datファイル内の日付フィールドを「削除レス用マーク文字列」で置
き換える。ただし、フィールドの長さを変更しないように、マーク文字列
の後はセパレータまで'#'で埋めること。
また、datに通常のレスの形式で、削除履歴を記録する。名前フィールドは
削除されたレス番号とし、日付フィールドは「削除履歴用マーク文字列」
とする。
例:3件書き込まれた後、2が削除、さらに1件書き込み。
----------------------------------------------------------------------
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>
##########<-#####<>DEL+998845501#<>########### <>
名無しさん<>sage <>01/06/13 21:36<>↑削除依頼出しときました。 <>
2<><>DEL+998845501#<>
名無しさん<>sage <>01/06/13 21:46<>お、早速あぼーんされてる <>
-----------------------------------------------------------------------
- 24 名前::~名前() :01/08/28 10:39 ID:eLo9c1WA
- ◎dat差分取得スクリプトreaddat.cgiの作成
専用UAやミラーサーバがdatファイルを取得する際に使用する。
ただし、取得する際にはdatファイル内に記録された削除履歴を含めて取得する
こと。たとえば上記のdatファイルの場合、st=3&to=4 を取得する場合、実際に
取得されるのは、3行目から5行目、「↑削除依頼」から「お、早速」まで。
また、上記のdatファイルからレス番号4のみを取得する場合は、4行目と5行
目を取得する。(削除履歴を間違いなく取得させること)
専用UAは、取得した差分datから、削除履歴をみて、既に取得しているログの
削除処理を行うこと。 (もしくは該当レスの再読込を行うこと)
◎read.cgiの変更点
・dat_read()ではdatファイル全部を読み込まず、インデックスファイルに基づいて
読み込む。
・マーク文字列を認識する。通常のレス、削除されたレス、削除履歴を認識すること。
削除履歴は、read.cgi内で「あぼーん」として表示するようにする。
◎問題点
・「透明あぼーん」に対応できない。マーク文字列を"DEL%"等として透明あぼ
ーんと認識させることは可能。
・堅牢性 現行の堅牢性にはかなわない。インデックスファイルとdatファイルとの
整合性がとれなくなった場合、困ったことになる。ただし、不整合はread.cgi
内で完全ではないけど検出可能。read.cgi内でインデックスファイルの再構築
を行っても、それほどの負荷にはならないと思う。
・既にUA内に取り込まれたスレに、削除処理がなされた場合、誰かがそのレスに書
き込まないと、「あぼーん」を認識できない?(UAの仕様にもよるか。datファ
イルのサイズをみて新規レスを認識するUAなら、大丈夫か?)
◎そのほか
・日付フィールドはtime_tでもいいと思う。その方がLast-Modifiedをきめ細かく
出力できる。この場合マーク文字列は、負の値を用いて認識するとか。
ただし、read.cgi、専用UAの変更が必要。
・datファイルをユーザから見えないようにしてしまおう。(無謀?)
- 25 名前:デフォルトの名無しさん :01/08/28 10:49 ID:/J/VCZIY
- dat差分取得スクリプトの名前はofflaw.cgiにすることを提案。
- 26 名前:デフォルトの名無しさん :01/08/28 11:06 ID:fuFoxE4A
- 曜日については datに書いておく必要はないのでは?
必要なら read.cgi側で作成すればいいんだし
- 27 名前::~名前() :01/08/28 11:27 ID:eLo9c1WA
- 一応説明しておきます。
・インデックスファイルの作成
主目的はread.cgi、readdat.cgiの軽量化。そもそも軽いに越したことはない。
また、この先ミラー化とかが進むのであれば、どんな環境で動作させることに
なるかか分からない。現行の、1レス取得でもdat全部をなめる、という方法で
は負荷が高すぎる。
・削除処理をレスの塗りつぶしで行う
インデックスファイルを作成するなら、その整合性を少しでも保つため、dat
ファイルは単調増加であることが望ましいから。大きいスレッドを処理する際に、
ファイルアクセスが減る。
・readdat.cgiの作成
専用UAの仕様を推奨したり、ミラー化が進むのであれば、必須の機能。また、
この機能を作成すれば、datファイル自体をユーザから隠すことも可能。
・datに削除履歴を残す
readdat.cgiを使用する場合に、削除処理が行われたことを専用UAが認識する
ために必要。
・日付フィールドをtime_tに変更する。
きめ細かいLast-Modifiedを出力するためには、必要。
こんなところかなあ。あ、もちろん、全ての名称は(仮)です。
<間違い訂正>
例:3件書き込まれた後、2が削除、さらに1件書き込み。
----------------------------------------------------------------------
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>
##########<>#####<>DEL+998845501#<>########### <>
名無しさん<>sage <>01/06/13 21:36<>↑削除依頼出しときました。 <>
2<><>DEL*998845501#<>
名無しさん<>sage <>01/06/13 21:46<>お、早速あぼーんされてる <>
-----------------------------------------------------------------------
- 28 名前:♯6411 :01/08/28 11:45 ID:8QKJAcfc
- >>23
> ・bbs.cgiがインデックスファイルを作成すること
datが半固定レコード化されるだけでもけっこう
効率化につながるとの思考実験結果が
出ておりますので、indexは後回しでもよろしかと。
> ・datそのものの差分を取得するcgiを作成すること
これはさくっとread.cgiに組み込んでしまうのが早いか?
> ◎インデックスファイル
read.cgiで生成してしまうという選択肢も考えられ。
> 「DEL+9999999999」 削除レス("DEL+" + time_t)
> 例:3件書き込まれた後、2が削除、さらに1件書き込み。
> ----------------------------------------------------------------------
> 名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>
> ##########<-#####<>DEL+998845501#<>########### <>
> 名無しさん<>sage <>01/06/13 21:36<>↑削除依頼出しときました。 <>
> 2<><>DEL+998845501#<>
> 名無しさん<>sage <>01/06/13 21:46<>お、早速あぼーんされてる <>
> -----------------------------------------------------------------------
あぼーんレコードは、「通常カキコとして取り込んでも
どうにか認識できる形」にしましょう。
例> <><>01/06/13 21:40 あぼーん<>あぼーん(以下埋め草の0x20)<>
通常、ID:???が入ってるとしたら、「あぼーん」を
挿入することによってレコードサイズがオーバーする
ことは、けっこう考えにくい。ID:が8文字入っていれば
確実にレコードサイズの確保が保障できる。
どうしても確保できなさそうなときは、「アボーン」を使う
というのはどうだ?(w
削除履歴に関しては使いやすい仕様なのかどうか
れびう中。
- 29 名前:♯6411 :01/08/28 11:48 ID:8QKJAcfc
- >>26 現時点で、投稿日フィールド(ID含む?)を、
そのまま解釈せずに使用している処理系が
多いと思われ。read.cgiに生成させるのは可能。
- 30 名前:♯6411 :01/08/28 11:51 ID:8QKJAcfc
- >>27
日付フィールドは、秒まで入れてもらうだけで、
構わないような気がしたり。
time_tは、その方が楽だという実装側の都合だし(w
- 31 名前:デフォルトの名無しさん :01/08/28 12:11 ID:vZozv./U
- ディレクトリ構成は今まで通り?
.datファイルと、htmlファイルの両方を吐き出す?
開発言語は?C?perl?
- 32 名前::~名前() :01/08/28 12:30 ID:EocciE/o
- インデックスファイルをread.cgiで作成するってのは、
一つの手ですね。datが更新された直後に呼び出された
read.cgiが自動作成する(インデックスを作り直す)様に
すれば、現在のread.cgiにも実装可能か。書き込み回数より
読み込み回数の方が圧倒的に多いはずですから、作成の負荷は
ちょっとかかりますが、読み込みの負荷は減るはず。
とりあえずの実装、実験としては十分かも。
>あぼーんレコードは、「通常カキコとして取り込んでも
>どうにか認識できる形」にしましょう。
おそらく専用UAは、投稿日フィールドを特に解釈せずに取
り込んでいると思いますので、これでも一応読み込めるはず
だと思っています(憶測ですが)。変な数字が表示されるの
は、それは我慢して貰うということで。
あと、IDですが、現在の「全板強制ID」が本当に続くのか、
いずれ緩和される可能性も考えておくべきかと。よって最小
14文字、ということで、4文字のコード+time_t(10bytes)
というフォーマットを考えてみました。(「あぼーん」と入
れたかったのですが、入らないので「DEL」と。)
個人的には、投稿日フィールドはtime_tで統一した方が、
いいと思ってます(周りのことは考えず(w )
年を出すとか、曜日を出すってのはread.cgi、専用UAに任した
方がプログラムを作る方としては楽ですね。本来datファイルは
ユーザが見る物では無いわけですし。
>31
今のところ、そこまで踏み込むつもりは無いのですが、なんか
アイデアあります?
- 33 名前::~名前() :01/08/28 12:33 ID:EocciE/o
- >31
開発言語は、現在のread.cgiがCですので、Cが妥当かな。
- 34 名前:31 :01/08/28 12:40 ID:84YF5f7s
- >>32
インデックスファイルを作成してread.cgiで読み出し範囲を簡単に指定できるなら、
htmlファイルを吐き出す意味がないと思います。
作成しないようにしたほうが、ファイルI/Oが減るので良いかと。
現状のカチュなどに対応を考えるならディレクトリ構成などは変更できないと思います。
perlならデバグぐらい応援できるかなと思っただけで。
素人考えでスマソ。
- 35 名前:デフォルトの名無しさん :01/08/28 12:45 ID:ign9iVXY
- 透明アボーンはレス番号がずれる欠点があったが、ずれないようにしてくれ。
あと、インデックスファイルには最新のn件取得を行う為に先頭に
現在の件数を入れておいた方がいいと思う。
# インデックスファイルサイズ / 1レコードサイズでも求められない事はないが
- 36 名前:デフォルトの名無しさん :01/08/28 12:47 ID:fuFoxE4A
- 参考
曜日有 ID無形式
<b>デフォルトの名無しさん</b>,sage,2001/08/09(金) 20:53, 本文,
現在の形式
<b>デフォルトの名無しさん</b>,sage,01/08/28 12:11 ID:xxxxxxxx, 本文,
- 37 名前:デフォルトの名無しさん :01/08/28 12:51 ID:fuFoxE4A
- datをアポーン固定にするなら、
IDXファイルを作るより、 datの先頭にインデックスを置いた方がいいんじゃないの?
レス50番毎に1個インデクスを作って20個分もあれば十分高速にならない?
- 38 名前:デフォルトの名無しさん :01/08/28 12:55 ID:Os46TJAs
- >>37
そんならdatファイル先頭に最大発言数固定(1000?)にして
インデックスまるまる入れるとか。
- 39 名前:デフォルトの名無しさん :01/08/28 13:00 ID:/J/VCZIY
- 透明でレス番がずれるのは証拠隠滅を連発されないようにする効果も
見込んでるから採用の見込みは薄いと思われ…
- 40 名前:デフォルトの名無しさん :01/08/28 13:07 ID:fuFoxE4A
- >>38 それでもいいんだけどね。
すると書込みが発生する都度 インデックス部も書き換えられるから嫌じゃないかなと
DATの先頭に現在のレス数と、インデクスを50番毎とか20番毎程度に更新しといた方
がバランスがよさげに思えたから
- 41 名前:デフォルトの名無しさん :01/08/28 13:14 ID:ign9iVXY
- >>39
> 透明でレス番がずれるのは証拠隠滅を連発されないようにする効果
証拠隠滅をされないようにするには例えば39が透明アボーンされた場合
38 名前:デフォルトの名無しさん
40 名前:デフォルトの名無しさん
みたいに名前の左にある連番をそのままにしておけばレス番もずれないし
透明アボーンされたこともわかるから証拠隠滅もされない
- 42 名前:デフォルトの名無しさん :01/08/28 13:16 ID:seP.sDII
- DATの先頭に現在のレス数と、最終更新日を書き込めば。
アボーン、透明アボーンがあった場合、最終更新日と、数字を書き込めばどうかと。
例1
200<>2001,8,28,13:20:10<>
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>どうじゃゴルァ
200のレスがあって最終更新が2001年8月28日13時20分10秒に最終更新あり。
例2
200<>2001,8,28,13:20:10<>abon
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>どうじゃゴルァ
200のレスがあって最終更新が2001年8月28日13時20分10秒に最終更新あり。
最終更新は、レスの中のどれかがアボーン
例3
200<>2001,8,28,13:20:10<>toumei
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>どうじゃゴルァ
200のレスがあって最終更新が2001年8月28日13時20分10秒に最終更新あり。
最終更新は、レスの中のどれかが透明アボーン
- 43 名前:デフォルトの名無しさん :01/08/28 13:42 ID:fuFoxE4A
- DATの先頭に書く場合最後の,の後に書いた方がカチューシャとかとの互換性上いいかもしれない
数字と英大小文字だけ使う62進数で書いた場合
2桁で 3844 レス数を表現するのには十分
4桁で 14M インデクス(バイト位置)を表現するのに十分
このインデックス部に書く年月日もこのさい62進数表現を使って YMDhms と6バイトにしたらどう?
Yは2062年にはまた0に戻る事にして
- 44 名前:デフォルトの名無しさん :01/08/28 13:50 ID:fuFoxE4A
- あと削除があった場合はリンクリストにするのはどうだろ?
- 45 名前:デフォルトの名無しさん :01/08/28 14:23 ID:fuFoxE4A
- idx埋込datファイル案:
先頭に埋め込むのは案外厄介かもしれないのでこういうのはどうでしょう
【各々レスに埋込案】
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,nnmmpppqqqq
nn は62進数2桁でこの行のレス番号を記録
mm は62進数2桁でこの行のバイト数を記録
pppは10レス前の相対バイト位置を62進数3桁で記録
qqqqは50レス前の相対バイト位置を62進数4桁で記録
これなら追記書込みだけで済むし、レス番指定されても
高速に検索出来ると思います
- 46 名前:デフォルトの名無しさん :01/08/28 14:25 ID:HEWceQCw
- あぼーん時にdatを詰めるんじゃなくて、同じサイズで塗りつぶすようにするなら
あぼーん時に後続のインデクスを書き換える必要はない。
消されたレスのインデクスだけマジックナンバーで上書き。
- 47 名前:デフォルトの名無しさん :01/08/28 14:27 ID:HEWceQCw
- >>45
1レコード分は必ず解析しなきゃいけないのね…
現行からの緩やかな移行を考えるなら仕方がないか…
- 48 名前:45 :01/08/28 14:42 ID:fuFoxE4A
- いや、後ろから1+2+2+3+4 バイト読み込んで先頭が","で残り全部が英数文字だったら
そっから1レス前、10レス前、50レス前には一挙に飛べるからだいぶ高速になると思うんだけど?
- 49 名前:名無しさん@揚げ足 :01/08/28 14:58 ID:/PUWXyoI
- >>41
さんせー
つか番号のギャップでアボーンされたこともわかるから、
アボーンと透明は一緒にできるんじゃないかな?
アボーンだけのレスを出力するより、転送量でもメリット大きいし
- 50 名前:名無しさん@揚げ足 :01/08/28 15:13 ID:/PUWXyoI
- >>48
.dat異常や非同期読み込みに対応することを考えると
ケツから検索して'\n'があったら2+2+3+4+1読み込みでいいのでは?
- 51 名前:45 :01/08/28 15:14 ID:fuFoxE4A
- さらに考えると、追加書込が同時に2つ行われた場合、
排他処理が巧く動かないとズレてしまう可能性があります
追加書込みした後、再度読み返して他のレスが書かれて
しまった場合は自分の責任で書き換えたとしても、その間
に読み出しが発生すると悲惨な事になりえます。
そこで、 >>45 を
nn は62進数2桁でこの行のレス番号
mm は62進数2桁でこの行のバイト数
pppは10レス前の絶対バイト位置 (adr10 % 238328) 62進3桁で記録
qqqqは50レス前の絶対バイト位置 を62進数4桁で記録
とします。
^ はベキ乗記号として
最終ファイルポインタから adr - (62^3) + ( ppp + (62^4) - adr) % (62^3)
つまり、もしかすると10レス前でなく11レス前かもしれない
けど、この方法なら書込み直後に誰かが読んでしまった場合でも
とりあえず余分に1レス読まれるだけの被害で済みます
なお、read.cgiでは最終行のレス番は間違っている可能性がある
として、10レス前から連番をフリ直す事にします
- 52 名前:デフォルトの名無しさん :01/08/28 15:16 ID:kCptMsAc
- TCPは使わないで、UDPでなんとかする。
- 53 名前:45 :01/08/28 15:18 ID:fuFoxE4A
- >50
非同期的動作を考えると インデクスデータ部にはなんかのチェックがやっぱり必要ですね
さらに1バイト追加してチェックサムに使うとか
- 54 名前:名無しさん@揚げ足 :01/08/28 15:33 ID:/PUWXyoI
- チェクサムがわりは'\n'で代用できると思われます
非同期書き込みは実装しようがないでしょうから
- 55 名前:45 :01/08/28 15:39 ID:fuFoxE4A
- >54
いや 旧ファイルとの互換性を考えると本文がちょうどその文字数で
全部半角英字の場合があるというのを忘れていました。
チェックサムでも取り除けないですね。
やっぱりありえない文字を含めないとダメかも
- 56 名前:名無しさん@揚げ足 :01/08/28 15:46 ID:/PUWXyoI
- 途中で書き込んでしまた>>54
つまり現在のファイルポインタよりmm+1バイトが'\n'なら正常とみなすってことです
nn,ppp,qqqqも同様にチェックできるけど、どの程度までチェックするかですね
- 57 名前:45 :01/08/28 15:51 ID:fuFoxE4A
- >56 なるほど そのチェック方法ならそれほど負担じゃないですね
他の案として
1) 文字 "" でインデックス部を囲む ×バイト数が増えてしまう
2) nnバイト手前から "," カンマの数を数える ×処理が重くなる
とか考えてたけど、単純に mm+1 バイト前が \n かどうかで十分ですね
- 58 名前:デフォルトの名無しさん :01/08/28 15:56 ID:baMy9AvY
- datファイルの書式
【各々レスに埋込案】
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,nnmmpppqqqq
nn は62進数2桁でこの行のレス番号を記録
mm は62進数2桁でこの行のバイト数を記録
pppは10レス前の相対バイト位置を62進数3桁で記録
qqqqは50レス前の相対バイト位置を62進数4桁で記録
現在のファイルポインタよりmm+1バイトが'\n'なら正常とみなす
って事ですな。
- 59 名前:45 :01/08/28 15:58 ID:fuFoxE4A
- いや
ppp は10レス前の絶対バイト位置 % (62^3)
qqqq は50レス前の絶対バイト位置
と変更して下さい
- 60 名前::~名前() :01/08/28 16:00 ID:EocciE/o
- datファイルの1行目は、本文の次のフィールドが、スレッドタイトルに
なっています。そこだけ注意が必要ですね。
- 61 名前:デフォルトの名無しさん :01/08/28 16:00 ID:KjYE0eDg
- bbs.cgiは、Perlで書いた方が良いのでは?
もしひろゆきが2ch管理人として活動を続けるという前提ですが。
#ひろゆきはCはできないらしいし
- 62 名前:デフォルトの名無しさん :01/08/28 16:03 ID:9x1/VLwY
- datファイルの書式
【各々レスに埋込案】
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,スレタイトル,nnmmpppqqqq
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,nnmmpppqqqq
nn は62進数2桁でこの行のレス番号を記録
mm は62進数2桁でこの行のバイト数を記録
ppp は10レス前の絶対バイト位置 % (62^3)
qqqq は50レス前の絶対バイト位置
現在のファイルポインタよりmm+1バイトが'\n'なら正常とみなす
【アボーン時の処理】
あぼーん時にdatを詰めるんじゃなくて、同じサイズで塗りつぶすようにする
これでよろしい?
- 63 名前:45 :01/08/28 16:04 ID:fuFoxE4A
- >60
そうですね。 では カンマを2つ入れますか?
でも10レス程度迄はインデックスは不要じゃないかと思います
10レスまでは インデックス部は無し
50レスまではqqqqはspaceという約束にしては?
- 64 名前::~名前() :01/08/28 16:07 ID:EocciE/o
- >61
bbs.cgiは今でもperlです。read.cgiは元々perlだったのを高速化の
ためCに書き直したそうです。(書き直したのはひろゆきじゃないらしい)
- 65 名前:デフォルトの名無しさん :01/08/28 16:12 ID:fuFoxE4A
- 【アボーン時の処理】
>あぼーん時にdatを詰めるんじゃなくて、同じサイズで塗りつぶすようにする
これなんですが、あぽーんは同時に複数される場合があるので、
その時された同じスレ内のあぽーんへのリンクを持たせるのはどうでしょう?
62進法なら4バイトでよいので収まると思うんですが
キャッシュ分散化とかの話があるなら、あぽーんされた事をキャッシュサーバ側が
高速に検索出来る仕掛けがあった方がいいと思うんですが?
- 66 名前:デフォルトの名無しさん :01/08/28 16:15 ID:fuFoxE4A
- 書いた後でなんだけど
キャッシュ分散化が具体的になった後からでも
あぽーん履歴ファイルを別に持たせる方法もあると思うから、あんまり複雑にしない方がいいですね
- 67 名前::~名前() :01/08/28 16:20 ID:EocciE/o
- >65
>キャッシュ分散化とかの話があるなら、あぽーんされた事をキャッシュサーバ側が
>高速に検索出来る仕掛けがあった方がいいと思うんですが?
それを考えているのが、>27で言うところの、「datに削除履歴を残す 」というところなのです。
現在のdatファイルの仕様を逸脱するので、問題ありかなあ、とも思うのですが。
キャッシュサーバは、readdat.cgiで最新レスを取得する際に、あぼーん情報を受け取ることに
なります。で、キャッシュサーバ内のキャッシュされているdatをあぼーんする、と。
- 68 名前:デフォルトの名無しさん :01/08/28 16:21 ID:HEWceQCw
- >>65
あぼーんも非同期に複数行われるから、いちいちリンクの再構築が必要。
通常の読み書きとの衝突を考えると、datで何でもかんでもやろうとするのは危険かもしれない。
- 69 名前:デフォルトの名無しさん :01/08/28 16:22 ID:9x1/VLwY
- datファイルの書式
【各々レスに埋込案】
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,スレタイトル,nnmmpppqqqq
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,,nnmmpppqqqq
nn は62進数2桁でこの行のレス番号を記録
mm は62進数2桁でこの行のバイト数を記録
ppp は10レス前の絶対バイト位置 % (62^3)
qqqq は50レス前の絶対バイト位置
現在のファイルポインタよりmm+1バイトが'\n'なら正常とみなす
【アボーン時の処理】
あぼーん時にdatを詰めるんじゃなくて、同じサイズで塗りつぶすようにする
2行目の本文の後ろにカンマ1個追加しました。
- 70 名前:ネタ :01/08/28 16:28 ID:ign9iVXY
- datファイルではなくてDBにしよう!
- 71 名前::~名前() :01/08/28 16:29 ID:EocciE/o
- >>70
禿堂
- 72 名前:デフォルトの名無しさん :01/08/28 16:35 ID:fuFoxE4A
- では、
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,,nnmmpppqqqq"n1n2n3n4"
のように、あぽーんがあった時は\nを"に上書きして
削除レス番号を62進2桁で連ねて記録しておくという方法はどうでしょう?
この情報をそのままキャッシュサーバに渡してやれば、あぽーん情報を
検索するのはだいぶ楽になるのでは?
- 73 名前:デフォルトの名無しさん :01/08/28 16:36 ID:Yn6y8Ggo
- >>70
mod_zgipを導入するのにもめてる状況でDBが使えるようになるのは、
不可能と思われ。
- 74 名前::~名前() :01/08/28 16:43 ID:EocciE/o
- >>72
そうすると、削除情報を持っているスレを読み込まないと、キャッシュサーバ側が
あぼーんを認識できなくなります。
たとえば5つのレスがあり、既にキャッシュサーバは5までのレスを読み込んでい
るとします。このとき、その内の一つがあぼーんされると、削除情報はレス5の後
ろに付く。その後レスが2つほどついて、次にキャッシュサーバは最新レスを取得
するときは、最新レスとしてレス6−7を読み込む。レス5に保存されている削除
情報がキャッシュサーバに伝わらなくなる。
ということになります。
readdat.cgiなどで、工夫すれば、大丈夫かという気もしますが。
- 75 名前:デフォルトの名無しさん :01/08/28 16:49 ID:fuFoxE4A
- いえこういう感じです
レス1,,nnmmpppqqqq
レス2,,nnmmpppqqqq
レス3,,nnmmpppqqqq
レス4,,nnmmpppqqqq
キャッシュもレス4まで読んでいる
レス1,,nnmmpppqqqq
<--レス2があぽーんされた
レス3,,nnmmpppqqqq
レス4,,nnmmpppqqqq"02"
ここでキャッシュは.datのサイズが違うので前回からの差分 02"を読む。
最後が"なので 削除有りと判断 レス2を読み込んでアポーンを確認する
- 76 名前:デフォルトの名無しさん :01/08/28 16:52 ID:fuFoxE4A
- この後に別のレスが続いた場合でも
02"
レス5,,nnmmpppqqqq
レス6,,nnmmpppqqqq
と差分をキャッシュ側が読み込む。 やはり1行目の最終文字が"なのであぽーんに気付く
- 77 名前:名無しさん@揚げ足 :01/08/28 16:54 ID:/PUWXyoI
- >>75
>>27の構造をとった場合、アボーンレコードが挿入されるので、
そんな情報は要らないはず
- 78 名前:デフォルトの名無しさん :01/08/28 16:56 ID:WlYYieA6
- >>77
ただ、その場合キャッシュサーバーが読みにきた時に全ての
レスを再読込しなければならなくなるよ。
- 79 名前::~名前() :01/08/28 17:02 ID:EocciE/o
- >75
実は、datはユーザからは隠してしまった方が良いのではないか?と思ってます。
readdat.cgiを介してdatの最新差分を読むようにすれば、gzip圧縮が効くという話が
前スレ(分岐元)で話していたときあったので。(実はよく分かっていないのですが)
datが見えないからには、ファイルサイズで更新を知ることもできない。
で、削除情報レコードにこだわるわけです。
>78
え、そうはならないはずですが。
- 80 名前:デフォルトの名無しさん :01/08/28 17:04 ID:WlYYieA6
- キャッシュサーバー用にアボーンファイルを用意するのは駄目?
アボーンされたレスの番号を書き加えていく。
キャッシュサーバーは自分の持ってるアボーンファイルと照合して
異なっている場合のみdatファイルを頭から持っていくってのは?
- 81 名前:名無しさん@揚げ足 :01/08/28 17:08 ID:/PUWXyoI
- >>78
例えば
レス1,,nnmmpppqqqq
レス2,,nnmmpppqqqq
キャッシュがレス2まで読んでいるとする
再度キャッシュが読みにきて
レス3,,nnmmpppqqqq
あぼーん2,,nnmmpppqqqq
レス4,,nnmmpppqqqq
キャッシュがレス3から読みこむとあぼーん2レコードから
レス2がアボーンされたことがわかります
- 82 名前:デフォルトの名無しさん :01/08/28 17:15 ID:WlYYieA6
- >>81
えーっとそれは、
あぼーんした時に、元のレス2を同じ容量で塗りつぶした場合でも?
あぼーん前
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,スレタイトル,nnmmpppqqqq
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,,nnmmpppqqqq
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,,nnmmpppqqqq
あぼーん後
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,スレタイトル,nnmmpppqqqq
<b>あぼーん</b>,###########################,,nnmmpppqqqq
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,,nnmmpppqqqq
ってことですよね。
もしキャッシュサーバーがファイルを取りにきた時に
3行目のnnmmpppqqqqの値とファイルの容量の整合性は正常なので
キャッシュを再構築しないって事じゃないんですか?
- 83 名前:デフォルトの名無しさん :01/08/28 17:17 ID:fuFoxE4A
- >78
なるほど。 それも一つのアイデアですね。
ただ、圧縮が有効なのは複数のスレを読み込むためではないのでしょうか?
チャット状態でなければ、キャッシュサーバは殆ど1スレ毎に取り出すような
感じになり、あまり圧縮は効かないのではないかと思います。
また、キャッシュサーバが立ち上がる迄に、かちゅーしゃのようなdat直読型
ブラウザに活躍して貰う場面があると思います。 それらが容易に対応出来る
仕掛けを用意出来ないかなとも思います
すると自前のファイル圧縮(スレ単位に)という事になると思いますが、
やっぱりあぽーんがネックですね。
一致文字列についてアドレスを記録する方式の前処理が圧縮には有効だ
けど、それを使うと あぽーんをすると再生出来ない場面が出てくるという
- 84 名前:デフォルトの名無しさん :01/08/28 17:21 ID:fuFoxE4A
- ×チャット状態でなければ、キャッシュサーバは殆ど1スレ毎に取り出すような
○チャット状態でなければ、キャッシュサーバは殆ど1レス毎に取り出すような
細分化されるほど圧縮は効きにくいという意味です
- 85 名前:名無しさん@揚げ足 :01/08/28 17:24 ID:/PUWXyoI
- >>82
えっと>>81の状態で.dat内容は
レス1,,nnmmpppqqqq
####,,nnmmpppqqqq
レス3,,nnmmpppqqqq
あぼーん2,,nnmmpppqqqq
レス4,,nnmmpppqqqq
となり、キャッシュは前回取得以降を読みこめばアボーン処理ができるという仕組みです
あぼーん2レコードが一つ増えるので、レス無しであぼーんだけでもキャッシュが動作できます
- 86 名前:デフォルトの名無しさん :01/08/28 17:30 ID:WlYYieA6
- >>85
了解。
途中にあぼーん情報を追加するって事ね。
- 87 名前:デフォルトの名無しさん :01/08/28 17:31 ID:fuFoxE4A
- >>85
なるほど その方が条件判断が減るかな・・・でも未対応dat直ブラウザだと
その行そのものがレスとして表示されちゃってレス番号グチャグチャになるかも
それから、インデックスのレス番号はありえない00にしときますか?
レス1,,01mmpppqqqq
####,,02mmpppqqqq
レス3,,03mmpppqqqq
あぼーん2,,00mm
レス4,,04mmpppqqqq
てな感じかな?
- 88 名前:デフォルトの名無しさん :01/08/28 17:41 ID:NXLEh2M2
- datファイルの書式
【各々レスに埋込案】
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,スレタイトル,nnmmpppqqqq
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,nnmmpppqqqq
nn は62進数2桁でこの行のレス番号を記録
mm は62進数2桁でこの行のバイト数を記録
ppp は10レス前の絶対バイト位置 % (62^3)
qqqq は50レス前の絶対バイト位置
現在のファイルポインタよりmm+1バイトが'\n'なら正常とみなす
【アボーン時の処理】
あぼーん時は同じサイズで塗りつぶすようにする。
インデックスのレス番号に00を入力したレコードを出力する。
あぼーん,,,,,00mm
って感じでどうでしょうか。
- 89 名前::~名前() :01/08/28 17:50 ID:EocciE/o
- >87
> なるほど その方が条件判断が減るかな・・・でも未対応dat直ブラウザだと
>その行そのものがレスとして表示されちゃってレス番号グチャグチャになるかも
あぼーんレコードを、datファイルのレコードと合わせてやれば、その変更は
そう難しくないだろうと目論んでいます。(ツール作者に期待)
最終的にはreaddat.cgi等で、datを隠蔽して、標準datフォーマットみたいなので
専用UAに返せれば、システムとしてすっきりすると思うのですが、これはCPU負荷
と、圧縮効率との兼ね合いに依りますね。
>88
そんな感じですね。
- 90 名前:ななしさん@スキルなし :01/08/28 17:56 ID:NXLEh2M2
- >>89
L-M 用に秒まで入れます?
- 91 名前:♯6411 :01/08/28 18:05 ID:ft1AuJx2
- >>89 read.cgi に統合される塩梅。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998845501&st=823
- 92 名前::~名前() :01/08/28 18:10 ID:EocciE/o
- >90
そもそも「あぼーん」ってのがレアケースだと考えると、そこまで
L-Mの処理をやる必要があるのかな、とも思いますが、まあ、入る
物なら入れて置いて損はないか、と思います。(w
ただ、秒まで含めるか?になると、現在日付フィールドには分単位
でしか日時情報は入っていないわけで、L-Mを計算は、あぼーんされ
たレスと、正常レスとの比較で行うわけですから、秒単位は必要無い
のでは?と思います。もちろん、日付フィールドをtime_tにすると言
うのであれば、話は別です。
- 93 名前:デフォルトの名無しさん :01/08/28 18:16 ID:fuFoxE4A
- このスレの内容には合わないかもしれないんだけど、
キャッシュサーバ間やキャッシュー専用ブラウザ間用に
独自圧縮ルーチン作ったらどうかと思うんだけどどう?
>83で書いたように キャッシュは1レス単位にアクセスして
くるだろうから、普通の圧縮は効かないと思う
スレの内容って >こぴぺ が多いしょ?
だから、同じ .dat を共有してるって前提で差分転送専用
のルーチンを作れば 相当圧縮出来そうに思う
- 94 名前::~名前() :01/08/28 18:27 ID:EocciE/o
- たとえば日本語に特化した圧縮ルーチンって出来ないかな。
あと、モナー板とかだったら、AAに特化した圧縮ルーチン。
モナーが書き込まれると1バイトに圧縮してくれるようなやつ。
- 95 名前:デフォルトの名無しさん :01/08/28 18:31 ID:fuFoxE4A
- まてよ・・・>>85 の方式だと 複数あぽーんあった時は
レコードも複数用意するの?
>>75 の方法との違いは単に 62進を使うのと \n を使わないだけの差のような気がしてきた
- 96 名前:ななしさん@スキルなし :01/08/28 18:42 ID:NXLEh2M2
- 現状のbbs.cgiが仕事してると思われること。
1、datファイルに書込み(新書式決定?)
2、subject.txtに書込み
3、index2.htmlの作成
4、imode用index.htmlの作成
4、スレ用のhtmlの作成
ですよね。
後の作業はどうします?
- 97 名前:名無しさん@揚げ足 :01/08/28 18:43 ID:/PUWXyoI
- >>95
だと思いますよ
私は>>27構造が先出で処理も単純だったので>>27を支持しました
- 98 名前:デフォルトの名無しさん :01/08/28 18:53 ID:fuFoxE4A
- 圧縮方法ですが、単純な辞書法+ランレングスだけでいいのではないでしょうか?
つまり、ミラーや.dat直読ブラウザは nレス迄のデータは持っていて
nレスから最新のレス迄を要求して来ます。
そこで、 互いのファイル上の位置と一致文字数を送ればいいかと
その後ハフマン圧縮をしても、劇的な効果は無い(せいぜい2/3)でしょうし
- 99 名前:デフォルトの名無しさん :01/08/28 19:58 ID:N63mN3bo
- 辞書には「氏ね」「逝ってよし」「オマエモナー」とかいろいろ登録しておけば圧縮効きそうね。
- 100 名前:デフォルトの名無しさん :01/08/28 20:43 ID:fuFoxE4A
- >99 うーん辞書法の辞書は普通同じファイル内の後方参照の事なんだけど・・・
辞書を作るのもアイデアですね
- 101 名前:デフォルトの名無しさん :01/08/28 21:22 ID:HEWceQCw
- >>99
固定辞書共有による圧縮は、ターゲットのテキストがよほど偏ってないと
かえって効率悪いんではないかと…
静的辞書があったからといって動的辞書を作らなくてもいいというわけでもないし、
インデクスの分だけ固定辞書にとられるのに固定辞書からの参照がほとんど無い
ような特性のデータだとかなり悲惨なことに…
- 102 名前:デフォルトの名無しさん :01/08/28 21:28 ID:fuFoxE4A
- bbs.cgiがindex2.htmの作成をやってるなら いっそ
index2.htmの作成を1日に1回に制限しちゃったらどう?
これで自然とキャッシュヒット率があがるでしょう
- 103 名前:デフォルトの名無しさん :01/08/28 21:33 ID:fuFoxE4A
- 追加:
subback.html も bbs.cgiが作成してるんだったらこれも更新を1日一回程度にしてしまう
多少不便になるけど、read.cgiを使って貰えば圧縮出来るんだからそっちに誘導する方向で考えた方が
- 104 名前:デフォルトの名無しさん :01/08/28 21:40 ID:N63mN3bo
- とりあえず。背景のレンガ画像を消す。
- 105 名前:デフォルトの名無しさん :01/08/28 21:40 ID:cccdonUU
- >102―103
ラウンジみたいに1日に何度もdat落ちする板だと、
すでにdatがないスレを表示し続けるはめになるよ。
- 106 名前:デフォルトの名無しさん :01/08/28 21:52 ID:fuFoxE4A
- >>105 それはそうだけど、index2.htm; も subback.html も現在の状態だと寿命が短すぎる
転送量を落とすという目的にはこれの寿命を延ばして自然キャッシュに任せるのが一番
お手軽かと思ったもんで
・・・なら、いっそindex.htmの内容をアプレットにして
http://piza2.2ch.net/tech/subject.txtから画面作りするのはどう?
- 107 名前:デフォルトの名無しさん :01/08/28 22:01 ID:/foo1b.s
- >>106
それは index2.html の Last Modified が出てこない &
content-encoding:gzip がうまいこと動いてくれない client
対策をする必要があるという現状を改善するために index2.html
を CGI 化しようということと同義ですね。
- 108 名前:デフォルトの名無しさん :01/08/28 22:05 ID:fuFoxE4A
- >107 そうだね cgi化しちゃえばいいんだよな read.cgiの分担か
- 109 名前:デフォルトの名無しさん :01/08/29 00:36 ID:AcUJ3yP.
- 3時間ほど前にこの状況を知り、いろいろ調べているのですが、
全部の過去ログ見れないので、既出だったらすみません。
改良案なのですが、「書き込みのフォームをスレッドにつけない」で、
基本的にROM用というのはどうでしょうか?
最新レス100 のあとに 書き込み用リンクを貼って
そこにだけ、フォームをつけるのは可能じゃないかと思うのですが?
ROMしてるだけの人って多いと思うし、過去ログにフォームついてるのは???
リロードは増えるかもしれないけど…
素人の意見で顰蹙買ったらごめんなさい。
- 110 名前: :01/08/29 00:39 ID:TsF5AU7k
- 勤務中
- 111 名前:デフォルトの名無しさん :01/08/29 01:27 ID:hrh7BDGk
- HDDに余裕が有ればだけど、時間単位か何かで更新情報のみを積めたアーカイブ
を作って判りやすいファイル名で置いておくようにしたら、専用ツールはCGIを介さずに
そちらを参照出来ると思うんだけど……。
CGIの負荷って、とりあえずは思考の外?
- 112 名前:名無し :01/08/29 01:30 ID:rLkLso.k
- 先日貰った bbs.cgi ありますけど鯖ありますか?
- 113 名前:仕様書かきかき :01/08/29 01:41 ID:D8e76gKQ
- >>109
転送量の低減を狙うならある程度は効くかも。
それにチャット状態の緩和にはいいね。
今も転送量はピーク時60Mオーバーだし、ちょっとの事が効いてくる。
- 114 名前:仕様書かきかき :01/08/29 01:49 ID:D8e76gKQ
- 非同期書き込みに対応させるのならトランザクション用のdatを
メモリ中に動的に展開して一定時間ごとにマスターdatに書くのはどう?ダサい?
read.cgiその他のプログラムのIOが変わるけど・・・無理か・・・
- 115 名前:デフォルトの名無しさん :01/08/29 01:52 ID:npmpuEU2
- >>112
ありますが、アップして大丈夫なんですか?
- 116 名前:名無し :01/08/29 01:57 ID:rLkLso.k
- もう出回ってる奴だし。アップしようか。
- 117 名前:デフォルトの名無しさん :01/08/29 01:59 ID:npmpuEU2
- >>116
参考になるので、よろしければアップお願いします。
- 118 名前:名無し :01/08/29 02:01 ID:rLkLso.k
- 鯖を貸してください。
- 119 名前:デフォルトの名無しさん :01/08/29 02:02 ID:npmpuEU2
- >>118
使っていいか聞いてきます。
- 120 名前:デフォルトの名無しさん :01/08/29 02:06 ID:npmpuEU2
- >>118
誰もレスしてくれる人がいないようなので、
ftp://210.170.170.131/incoming/bbs_cgi/
にアップして下さい。
- 121 名前:Perler ◆GSi39OA6 :01/08/29 02:11 ID:44.z9PPA
- >>107>>108
そのCGIなら、ずいぶん前に
ftp://210.170.170.131/incoming/perler/
にアップロードしたはずです。
index2.c.1というのがそれです。
- 122 名前:%95 :01/08/29 03:37 ID:uqhD7TfA
- 以下は、批判要望版に書いた物です。バイト数を削減できる話。
基本的にhiddenは使用しない事です。
例えば、index2.htmlの入力フォームの圧縮を図る
現状
<form method=POST action="../test/bbs.cgi">
<input type=hidden name=bbs value=hp>
<input type=hidden name=key value=998275441>
<input type=hidden name=time value=998847349>
このhiddenタグを削除して以下にする。
<base href=".. <form method=POSTaction="../test/bbs.cgi?bbs=hp&key=998275441&time=998847349">
bbs.cgiでは、環境変数QUERY_STRINGからhidden相当を取り、
標準入力から残りのフォーム変数を取得。現状と互換性あり改造簡単。
将来的には、<form method=POST action="bbs.cgi?hp:998275441:998847349">まで短縮。
変数名なんて明記する必要無し。
- 123 名前:%95 :01/08/29 03:39 ID:uqhD7TfA
- まちがえ。
<form method=POST action="../test/bbs.cgi?bbs=hp&key=998275441&time=998847349">
ではなく
<form method=POST action="bbs.cgi?bbs=hp&key=998275441&time=998847349">
- 124 名前:%95 :01/08/29 03:44 ID:uqhD7TfA
- >>109
既に意見は出ているのですが・・・。
- 125 名前:デフォルトの名無しさん :01/08/29 04:49 ID:rnh5SETk
- もう書きはじめた人いる?
誰もいなければ書きはじめるけど(C でいいなら)。
- 126 名前:デフォルトの名無しさん :01/08/29 05:48 ID:gasQtqoY
- くっきーかなんか使って、一人あたり一日500kbyte以上ダウンロードできなくするとか。
- 127 名前:DolBacky :01/08/29 09:32 ID:xiG8fDs.
- >>112さん
すいませーん。どなたにもらったか教えていただけませんでしょうか?
- 128 名前:Sherry ◆RKMbxbuc :01/08/29 09:40 ID:oahd3UTQ
- bbs.cgi は C で書くんですか?
鯖のCPU負荷はあまり問題になっていないようなので,
Perl で書いた方が良さそうな気がするのですが(^^;
その方が早く完成すると思いますし.
% bbs.cgi ってそんなにアクセス無いですよね.たぶん‥‥‥
- 129 名前: