■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 最新50

プログラマが2chを救う!?2

307 :デフォルトの名無しさん :01/08/27 17:03 ID:plW.7Hb6
>>305
あぼ〜ん処理を、「あぼ〜ん」と置き換えるのではなく、特定の文字、
それもキーボードから入力できない文字(たとえば0xffとか)で上書き
するってのはどうだろう?
そうすればdatは単調増加を保証する事が出来る。

308 :デフォルトの名無しさん :01/08/27 17:06 ID:plW.7Hb6
あ、過去ログのあぼ〜ん検出は、考えてません。(藁

309 :デフォルトの名無しさん :01/08/27 17:08 ID:plW.7Hb6
もういっちょ。自己レス
>上書きするってのはどうだろう?
同じ長さだけ、上書きって事ね。

310 :♯6411 :01/08/27 17:12 ID:Gdy5fRSM
>>307 それでいいとおもう。
実際の改造手順としては。
0) あぼーん新仕様の提示、決定
1) read.cgiに新仕様を実装
2) あぼーんツール(?)を新仕様に従って改変
3) この時点で.datの半固定レコード化が決定される
4) ウマー

仕様に要求されるもの
・ログの保全。証拠隠滅のため、レコードを塗りつぶす必要蟻。
・消去した時刻を保管。L-Mを吐くために必要。time_tに準ずる情報で構わない。

311 :デフォルトの名無しさん :01/08/27 17:13 ID:CSUZ8fsE
>>306
外からの access 不能な dat file を用意しておいて、
access 可能な dat file はその file それから生成するようにする
っていう手もあるかな。

312 :仕様無しさん ◆NwLv.g/w :01/08/27 17:12 ID:ilyBDhYw
キーボードから入れられない文字列である必要はないのではないかな。
マーク付けを利用して、
"+本文でーす。" −あぼーん→ "-〓〓〓〓〓〓"
みたいな感じで。

313 :デフォルトの名無しさん :01/08/27 17:17 ID:U3BzOc.o
ついでにあぼーん時に発言同様に末尾にレコード追加できれば
差分取得ツールでもあぼーんに気づけるね。

314 :♯6411 :01/08/27 17:21 ID:Gdy5fRSM
>>313 それいいね。

315 :♯6411 :01/08/27 17:26 ID:Gdy5fRSM
ところで、各鯖のストレージ容量は
問題ないんでしょか? ファイルをいくつか
書き出してもいいのであれば、
問題解決に対するいい案がある。
(inodeサイズも問題か…?)

316 :デフォルトの名無しさん :01/08/27 17:28 ID:plW.7Hb6
となると、datファイルは以下のようになるのだろうか。

+名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ
-##########<>#####<>##############<>###########
+名無しさん<>sage <>01/06/13 21:36<>↑削除依頼出しときました。
*2
+名無しさん<>sage <>01/06/13 21:46<>お、早速あぼーんされてる

(+ 通常のレス / - あぼーんフラグ / *あぼーんしたレス番号)
差分取得cgiが3-4を取得する場合は、3行目から3行を返す。

317 :デフォルトの名無しさん :01/08/27 17:29 ID:prujT1K6
>>307
単に半角スペースが良いのでは?

318 :♯6411 :01/08/27 17:34 ID:Gdy5fRSM
>>316 日時のところ、削除日時にすると、
いろんな処理が融通利くと思われ。

319 :デフォルトの名無しさん :01/08/27 17:39 ID:plW.7Hb6
>>318
だね。

あと、マークだけど、行頭の+とか-でせずとも、現在使用している
セパレータ<>は最初の<しか見てないみたいだから、最初のセパレータ
を<-とか<*とかする事で判別できるかもしれない。

>>317
それだと、名前欄とかに半角スペースを入れられたときに誤作動しないかなあ
と思ったの。もちろんマークにするなら、何でもいいよ。

320 :デフォルトの名無しさん :01/08/27 17:43 ID:guHZp8d.
転送量の増加って、いま急に始まったことじゃないんでしょ?
どうしてここにきて取りざたされてるの?

321 :デフォルトの名無しさん :01/08/27 17:43 ID:plW.7Hb6
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>
##########<-#####<>998845501#####<>########### <>
名無しさん<>sage <>01/06/13 21:36<>↑削除依頼出しときました。 <>
2<*<><><>
名無しさん<>sage <>01/06/13 21:46<>お、早速あぼーんされてる <>

こんな感じかな。

322 :デフォルトの名無しさん :01/08/27 17:44 ID:U3BzOc.o
>>321
4行目のほうにも同じ削除日時があると、ツールでいちいち取りに行かなくてもよさげ。

323 :デフォルトの名無しさん :01/08/27 17:53 ID:kQSWx7uc
あぼーんの新仕様を提示して受け入れられるとは限らないから
従来フォーマットでなんとかする方法も検討しておいたほうが
よくない?

324 :デフォルトの名無しさん :01/08/27 17:53 ID:3qcMJ/2M
>>320
サーバー管理者が増加ペースを見誤るほどだったらしい

325 :デフォルトの名無しさん :01/08/27 17:54 ID:plW.7Hb6
>>319
自己レス、セパレータはちゃんと二文字目の'>'も見てた。失礼。
でも、これはread.cのちょっとした変更で対応可能だ。

326 :音楽侍 ◆NtVkSITE :01/08/27 17:56 ID:cn52pBwI
>>320
なんと回線の帯域使用料金が従量制だから。

327 :デフォルトの名無しさん :01/08/27 17:58 ID:plW.7Hb6
>>326
それは、非常に普通の事だと思うんだけど、BigServer側から
ひろゆきの方へ、ちゃんと伝わってなかったの?

328 :デフォルトの名無しさん :01/08/27 18:02 ID:cn52pBwI
>>327
まさか。
もうずっと話し合ってたけど、事が露呈したのは、26日に夜勤さんがスレで暴露、というか音を上げて、read.c公開したからだよ。
それまでずっと、「雑談系板つぶす」って言ってたんだけど。

329 :名無しさん@揚げ足 :01/08/27 18:02 ID:2Ibh3ubo
>>321
透明アボーンも対応するなら、別な文字も割り振っとこうよ'%'とか

330 :音楽侍 ◆NtVkSITE :01/08/27 18:02 ID:cn52pBwI
>328
ちょっと日にち間違ったけど、まぁそんな理由。
 

331 :デフォルトの名無しさん :01/08/27 18:03 ID:tM5s0/C.
>325
現時点ではHTMLのタグがdatに埋め込まれているので
'<'のみでは判別不可能です。

332 :デフォルトの名無しさん :01/08/27 18:05 ID:plW.7Hb6
>>331
そだね。すっかり忘れてたよ。バカだなあ>おれ
<* とか <% とかだったら大丈夫?かな?

333 :♯6411 :01/08/27 18:12 ID:Gdy5fRSM
>>329 透明あぼーんのことすっかり忘れてたYO

334 ::~名前() :01/08/27 18:15 ID:plW.7Hb6
>329
漏れも忘れてた。
でも、この方法で行くなら、透明あぼーんは別のマークを使うなどして、
read.cgiで処理しなきゃ仕方がないよね。
(コテハンにします。)

335 :♯6411 :01/08/27 18:20 ID:Gdy5fRSM
>>331 .datの中に埋め込まれる'<' '>' (< >ニ非ズ)は、
bbs.cgiのみが生成していて、
'<>'というシーケンスが他に現れないなら…
「最新レスnn」の処理はbinary search+αに
最適化できそうだなー。
番号指定はlinear searchじゃないとダメか…

実際Linuxの場合、mmapされたファイルはたいてい
ページキャッシュに残留してる…ことが期待されるんで、
無理にlinear searchを避けることもないかな。

336 :♯6411 :01/08/27 18:22 ID:Gdy5fRSM
>>335 (< >ニ非ズ)
&gt; &lt; って書いたつもりだったのに、
そのまま取り込まれちゃったよ…鬱だ

337 :デフォルトの名無しさん :01/08/27 18:27 ID:ZIaMkoUw
ほんとに夜勤さん待ちなの?

338 :Perler ◆GSi39OA6 :01/08/27 18:31 ID:95LP96f6
http://203.174.72.113/p2pcache/P2Pcache/frame.htm

における、P2P-chacheと似たもののベータ版が完成しつつあります。

これだけ分離して、

http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998764722

か、新しいスレで議論したいと思うのですが如何でしょうか?

ソースについては、幾つかのバグを潰した後公開します。

339 :音楽侍 ◆NtVkSITE :01/08/27 18:33 ID:cn52pBwI
>>338
新しいスレに賛成です

340 :うんこ12号 :01/08/27 18:33 ID:XsLanPR.
http://piza2.2ch.net/test/read.cgi?bbs=musicx&key=998676619&ls=100

IEのキャッシュが問題になっていますがもう織りこみ済ですか?

341 :デフォルトの名無しさん :01/08/27 18:34 ID:Oeqm.zBM
スレに書き込んだ人を特定する方法が、

ハンドルネーム
ID
キャップ
トリップ
fusianasan

e-mail

こんなに必要だとは思えません。
どれかを削るなり、この部分のシステムをシェイプアップすることはできませんか。

342 :デフォルトの名無しさん :01/08/27 18:35 ID:cn52pBwI
>>341
それはひろゆきに聞くべきでしょう

343 :名無しさん@揚げ足 :01/08/27 18:46 ID:2Ibh3ubo
read.cgiは塗りつぶしでいいとして、UA用に>>300が必要じゃないかな
UA側は1回/日とかで>>300を読んでアボーン処理を行うとか

344 ::~名前() :01/08/27 18:52 ID:plW.7Hb6
>343
一応、>316の方法で、新規レス取得時にあぼーんを検出出来るように
考えているつもりなのだが。

345 :名無しさん@揚げ足 :01/08/27 18:55 ID:2Ibh3ubo
頭ががdiff出力として解釈してた(恥
スマソ>>344

346 :♯6411 :01/08/27 19:01 ID:Gdy5fRSM
>>344 漏れは使ってない(ほっとぞぬ)ので
わからんのだが、新しいフォーマット導入したとき
かちゅーしゃ互換にできるだろーか?
それがちょっと心配。
まー切り捨てるってのは考えられるけど(w
あぼーんを塗りつぶす、まではかちゅーしゃとかでも
見ることができるんではないかと。

347 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:03 ID:asPJm1Ug
みなさんお疲れさまです。
>>338
かなり規模の大きい話になってきましたから、「当然のこと」をきちんとまとめて、
各部を各スレに明示的に分散させると良いと思います。
・read.cgi最適化(従来との互換性を保ちつつ、新仕様の実装&バグとり)
・bbs.cgiの改善案
・bbs.cgiの作成?
・P2P-cacheの作成
大まかにわけるとこんなところですが、P2P-cacheの内部ではさらに分化もある
でしょう。
で、とにかく、各セクションが絶対に守るべき仕様を、まとめて掲げておくべき
だというのが、最もいいたいことです。
もしくは、最重点セクション以外は議論を凍結してしまった方が、むしろ
よいかもしれません(混乱を防ぐため)。
どうでしょうか。まとめてみますので、みなさんがよろしければ提示しますです。

348 :Perler ◆GSi39OA6 :01/08/27 19:03 ID:95LP96f6
>>339
タイトルとかどうしましょうか?
「キャッシュ型負荷分散システム開発スレッド」とかでいいかな?

作成もどなたかにお願いしたいのですが。。。

349 ::~名前() :01/08/27 19:05 ID:plW.7Hb6
>346
それはもう、ツール制作者さんに対応して貰うしかない。
ある程度早めに仕様を公開して、その間に対応をして貰う。
そのためには、なるべく現行の仕様から逸脱しない様に、
しなきゃならない。
まあ、それもこれも、運営側がなんと言うかにかかってるけど。

350 :Perler ◆GSi39OA6 :01/08/27 19:05 ID:95LP96f6
>>620
現在でも、キャッシュとサーバー上のデータが同じなら、リロードされても
何も送らないような仕様になっています。
10秒ごとに新規書き込みされない限り、同じことですので大丈夫だと思います。

もっと値を大きく、1度読み込まれたら5分はリロードできない、という風にすると
劇的に回線負荷は減るかもしれません。

その前に、index2.htmの負荷(キャッシュに対応していない)をなんとかする
必要がありますが。。。

351 :Perler ◆GSi39OA6 :01/08/27 19:07 ID:95LP96f6
>>350
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998764722
と、スレを間違えて書き込んでしまいました。。。
無視してくださいませ。

352 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:08 ID:asPJm1Ug
>>348
tech板でいいですか?よければこちらで建ててしまいますが。。。

353 : ̄ー ̄)ノ :01/08/27 19:17 ID:KeujS.U6
二日連続夜更かしで昼夜逆天誅
寝てる間にバージョンアップしてますね
夜は娘さん、昼間はPerlerさん
おつかれさまです
例のごとくミラーリンク
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/read14.2.1.c
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/index2.c
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/index2.c.1

古いバージョンは
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html
(↑必要ないですけどね)

354 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:18 ID:asPJm1Ug
>>348 >>352
どうやら
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998764722&ls=50
こちらで話が進展しているようですので、新スレではなく↑でつづけて
よろしいのでは。。。
誘導はスレ立てておこないますから。

355 :Perler ◆GSi39OA6 :01/08/27 19:19 ID:95LP96f6
>>352
板の選定はお任せします。
立ててしまってください。宜しくお願いします。

356 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:29 ID:asPJm1Ug
>>355
たてました。
あとの各話題の誘導などはおまかせください。。。

357 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:30 ID:asPJm1Ug
>>356

http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998908154
「キャッシュ型負荷分散システム開発スレッド」

です。

358 :仕様無しさん ◆NwLv.g/w :01/08/27 19:32 ID:LABmXIYU
>353
r2chhtml.hもお願い〜

359 : ̄ー ̄)ノ :01/08/27 19:34 ID:KeujS.U6
わかりました

360 : ̄ー ̄)ノ :01/08/27 19:37 ID:KeujS.U6
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/r2chhtml.h

361 :名無し娘。 ◆vP.bOZFQ :01/08/27 19:42 ID:9PuzuTEs
●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://piza2.2ch.net/test/read.cgi?bbs=tech&key=990334284&ls=20
 http://203.174.72.113/p2pcache/P2Pcache/frame.htm

●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

362 :仕様書かきかき :01/08/27 19:49 ID:TbH.eexM
まだここで話してもいいのかな?

dat_readがとにかく効率悪いのは分かったけど
これを改善するにはdatの仕様から変えないとだめすね。

これまで改造したread.cgiはもうリリースされたの?
次期read.cgi(つーか次期2chの基本仕様)はどこで話すの?

363 :名無し娘。 ◆vP.bOZFQ :01/08/27 20:02 ID:9PuzuTEs
>>362
えっと、read.cgiに関しては全部ここのつもりですが、
当面は、現在のread.cgi各部(各関数)の機能は変えずに、
最適化を目指し、同時に、互換性を保ちつつ、次世代read.cgiの
機能も取り込んでいくことになると思います。
#ifdef でコンパイル時に選択肢を残しつつ。

364 : ̄ー ̄)ノ :01/08/27 20:13 ID:KeujS.U6
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998908154
でも言ったんですけど
read.cgiに差分送信機能をつけれないですかね

365 :名無し娘。 ◆vP.bOZFQ :01/08/27 20:18 ID:9PuzuTEs
>>364
サーバーをProxy型にして、resumeっぽくふるまえばよいのかな。
If-rangeあたりにも対応。。。
あぼーんのときはresumeさせなければよい。
。。。gzip圧縮させたときも問題なく振る舞うかどうかは知りませんが。

366 ::~名前() :01/08/27 20:20 ID:plW.7Hb6
>>364
数時間ほど前、まさにその話をしていたんですが。
過去ログをどうぞ、あぼーん機能を含めて、大体仕様は固まっています。
(と、思う。もちろん、改良の余地はいっぱいあります。)
これに、インデックスの機能が付けられたら、現行のdatファイル(と似た
仕様)を使う場合、結構いいところまで行くと思うのですが

367 :名無し娘。 ◆vP.bOZFQ :01/08/27 20:21 ID:9PuzuTEs
>>365
つづき。
やっぱり、一般のブラウザはファイルサイズを見て差分転送にするかどうかを
決めているはずですから、cgiで動的に圧縮かける場合、できあがったgzip
ファイルに膠着性(?)がないこともあって、難しいような気がします。

368 ::~名前() :01/08/27 20:22 ID:plW.7Hb6
あ、もちろん、bbs.cgiなど、関連スクリプトもまとめて変更できる場合の話です。
次世代?の話になります。

369 :名無し娘。 ◆vP.bOZFQ :01/08/27 20:25 ID:9PuzuTEs
>>368
んと、bbs.cgiや.datファイルへの要求仕様を明確にすれば、read.cgiの方で
(現在との互換性を保ちつつ)先に実装しちゃうってのは、ありだと思います。
まだ理解しきっていないので過去ログ読んできます。

370 : ̄ー ̄)ノ :01/08/27 20:26 ID:KeujS.U6
P2Pキャッシュ+差分問い合わせ化が
次世代2chとしては最も好ましいと思うのですが
Big-serverがそれを容認するでしょうか
2chにも耐えられるという宣伝効果が事実上無くなるというか
耐えれなかったからP2P化したとして
Big-serverの宣伝としては逆効果なわけで・・・

371 :名無し娘。 ◆vP.bOZFQ :01/08/27 20:28 ID:9PuzuTEs
まず、現在のbbs.cgiがなにやってるかのフローチャートを作りましょうか。
新たな機能を加えるにしても、今何やってるか正確に分析しないことには
話になりませんし。
ドンドン話進めちゃってください。

372 : ̄ー ̄)ノ :01/08/27 20:30 ID:KeujS.U6
2ちゃんのCGI達が何をやってるかをフローチャートにしたら
何か良い案が出るかもしてませんね
お願いして良いですか?>>371

373 :名無し娘。 ◆vP.bOZFQ :01/08/27 20:35 ID:9PuzuTEs
>>372
自信なし。。。叩き台にしてください(汗

getenv()の内容チェック
.datの容量、レス数チェック、lock
名前の長さ(0<i<?),e-mailの長さ(0<=i<?),age&sage,本文のデータ量等チェック
.datに追加、lock解除
index2.htmlのlock,書き換え

374 :名無し娘。 ◆vP.bOZFQ :01/08/27 20:37 ID:9PuzuTEs
二重書き込みチェック、連続投稿チェックもあるなぁ。
どの順でチェックしているのかはよくわからないです。

375 : ̄ー ̄)ノ :01/08/27 20:38 ID:KeujS.U6
>>225
の流出スクリプト(?)を元になんか出来ませんかねぇ

376 :仕様無しさん ◆NwLv.g/w :01/08/27 20:43 ID:LABmXIYU
この辺も参考になるかな?
 http://teri.2ch.net/test/read.cgi?bbs=saku&key=996761078&st=129&to=132&nofirst=true

377 : ̄ー ̄)ノ :01/08/27 20:48 ID:KeujS.U6
よく考えたらP2Pキャッシュ化って削除関連が難しそうですよね
いくら本家サーバーで削除しても潜在的に大量の
未あぼーんデーターが全国に散らばってるんですからねぇ〜

378 :音楽侍 ◆NtVkSITE :01/08/27 20:58 ID:cn52pBwI
マルチポスト失礼。
開発シーンをもっと明確にした方が良いと思います。
1)現行システムを夜勤さんとともに向上させる
2)ひろゆきさん達が参加するような、bbs.cgiも含めた改善案
3)2ちゃんねる類似の新システム開発
いまは、上記が混然としすぎています。

379 :デフォルトの名無しさん :01/08/27 20:59 ID:CbLq.TAQ
>>377
2ch.netから全国のピアキャッシュに削除トランザクションをフィード。
ピアキャッシュリストの履歴管理が大変かな…

380 :名無し娘。 ◆vP.bOZFQ :01/08/27 21:02 ID:9PuzuTEs
>>377
そうですねぇ。

bbs.cgiがなにやってるか(それぞれがひとつの関数かな、と)
ID計算が前に来るような気もする。。。

10.zz_GetEnv()っぽいことをする
20.refererやremote_hostなどをみて、不正な場合は排除する
30.名前、e-mail、本文欄をチェックし、不正な場合は排除する
40.cookieをみて、不正な書き込みを排除する
50.連続投稿を排除する
60.書き込もうとする.datをチェックする。
61..datが大きすぎる場合、レス数が1000overの時排除
62.二重書き込みを排除
63..datをlock
70.書き込み内容の特殊文字を変換する、HTMLタグを挿入する
71.キャップ、トリップ、IDの計算
72..datに書き込み、lock解除
80.age,sage判別
81.index2.html更新

381 : ̄ー ̄)ノ :01/08/27 21:05 ID:KeujS.U6
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/read14.2.2.c
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/Makefile.14.2.2
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/r2chhtml.14.2.2.h
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/util_date.c
http://star.endless.ne.jp/users/forcount/contents/scriptmaker/util_date.14.2.2.h

全て上げておきました
http://star.endless.ne.jp/users/forcount/4countbbs/scriptmaker/index.html

382 :名無し娘。 ◆vP.bOZFQ :01/08/27 21:20 ID:9PuzuTEs
>>378
統合スレッドの方でレスしておきますね。
>>380
そういえば、キャップがあると連続投稿規制かからないとかいう噂も。。。
どうかみなさん、バシバシつついてください。
スレ立ての場合のフローなども。。。
その後、bbs.cgi自作しちゃいますか?
キャップなどの一覧はヘッダなり外部ファイルなりに追い込んで。

383 : ̄ー ̄)ノ :01/08/27 21:21 ID:KeujS.U6
完全P2Pってのは掲示板のシステムとしては
少し難しいのかもしれませんね
特に削除という面においては・・・

そうなると、固定キャッシュサーバーが有力ですかね
Big-serverの事も配慮すると固定キャッシュサーバーは
2chで有志を募るという形にしないとマズイですね

もしくはP2Pキャッシュを暗号化してしまう
(つまり消せない未アボーンデータを見れなくしてしまう)

384 :仕様無しさん ◆NwLv.g/w :01/08/27 21:23 ID:LABmXIYU
subback.htmlの更新も81に入るかな?

385 : ̄ー ̄)ノ :01/08/27 21:25 ID:KeujS.U6
バージョン4の時のread.cもそうでしたけど
現状のbbs.cgiもつつき所が沢山ありそうですね

>>225
のデーターは本当に2chのスクリプトなんでしょうかね?
まぁ良いか・・・
これ見ながら新しいの考えてみましょうか

386 :デフォルトの名無しさん :01/08/27 21:37 ID:plW.7Hb6
夕方頃に話していたことを、まとめてみました。

次世代?2ch .datとread.cgi、その他関連ファイルの仕様案

【要点】
・bbs.cgiがインデックスファイルを作成すること
・削除処理は、レス内容塗りつぶしで行い、datのサイズを変えないこと
・削除処理の履歴?をdatファイルに記録すること
・datそのものの差分を取得するcgiを作成すること

◎インデックスファイル
インデックスファイルは、bbs.cgiが各レス書き込み時に、書き込み後の
datファイルのサイズを記録し、レス番号と関連付ける。
たとえばレス番号nのレスを読み出したい場合は、datファイルより、
idx[n-1] 〜 idx[n] - 1 の範囲を読み出す。
ファイルフォーマットは未定。32bitバイナリのベタファイルで十分だと思う。

◎削除処理
削除スクリプトは、該当レスの内容を特定の文字(とりあえず'#')で
塗りつぶすことで、削除処理を行う。datファイルのサイズを変更しない。
(インデックスファイルの整合性を保つため)
また、datファイル内のレスの最初のセパレータ"<>"を"<-"に変更する。
("<-"はとりあえず)
また、datに通常のレスの形式で、削除履歴を記録する。ただし、最初の
セパレータは"<*" とする。(これもとりあえず)

例:3件書き込まれた後、2が削除、さらに1件書き込み。
----------------------------------------------------------------------
名無しさん<>sage <>01/06/13 21:26<>暴露しろや、ゴルァ <>
##########<-#####<>998845501#####<>########### <>
名無しさん<>sage <>01/06/13 21:36<>↑削除依頼出しときました。 <>
2<*<998845501><><>
名無しさん<>sage <>01/06/13 21:46<>お、早速あぼーんされてる <>
-----------------------------------------------------------------------

◎dat差分取得スクリプトの作成
専用UAやミラーサーバがdatファイルを取得する際に使用する。
ただし、取得する際にはdatファイル内に記録された削除履歴を含めて取得する
こと。たとえば上記のdatファイルの場合、st=3&to=4 を取得する場合、実際に
取得されるのは、3行目から5行目、「↑削除依頼」から「お、早速」まで。
また、上記のdatファイルからレス番号4のみを取得する場合は、4行目と5行
目を取得する。(削除履歴を間違いなく取得させること)
専用UAは、取得した差分datから、削除履歴をみて、既に取得しているログの
削除処理を行うこと。

◎その他
削除したレス及び削除履歴には削除日時をtime_tで記録する。(用途は今のとこ
ろ思いつかないけどとりあえず。)

387 :音楽侍 ◆NtVkSITE :01/08/27 21:38 ID:cn52pBwI
>>382
というか、あっちって、見られていますか?(笑)
私が言いたいのは、いま、スレがいろいろたち始めていますが
「どのスレで、誰が、どの課題について、なにをしている」
っていう整理をした方がよい、ってことです。
読む人も、作業する人も、管理者さんたちも注意が拡散してしまいますので。

388 ::~名前() :01/08/27 21:46 ID:plW.7Hb6
追加です。

◎read.cgiの変更点
・dat_read()ではdatファイル全部を読み込まず、インデックスファイルに基づいて
 読み込む。
・セパレータを識別し、通常のレス、削除されたレス、削除履歴を認識すること。
 削除履歴は、read.cgiないで「あぼーん」として表示するようにする。

◎問題点
・「透明あぼーん」に対応できない。セパレータ(マーク)を"<%"等として透明あぼ
 ーんと認識させることは可能。

こんなもんかなあ。他にもあったような気がするけど。思い出したら追加します。

389 :デフォルトの名無しさん :01/08/27 21:47 ID:GRBfg3.A
透明あぼーんはしばらく考えないでおいたほうが・・・

390 :名無し娘。 ◆vP.bOZFQ :01/08/27 21:51 ID:ihlstQzQ
>>387
やろうと思っていたのですが、今日はなかなか時間がとれなくて。
# あっちはそのためにたてたスレッドだったのですが(^^;
申し訳ないです。
深夜帯になったら時間がとれますので、そのころ現状のままでしたらやっておきます。
# 今は私自身もなんのこっちゃ把握していない(汗

391 :デフォルトの名無しさん :01/08/27 21:57 ID:Kz6Nmn.Q
17氏のスクリプトは流出したものではなく
>>385

>>225のスクリプトですが、自力で書かれたものと思います。

以下のスレッドの発言17が17氏です。
2ch型掲示板
http://corn.2ch.net/test/read.cgi?bbs=php&key=988816430

392 :391 :01/08/27 21:58 ID:Kz6Nmn.Q
あぅ。。
元が流出スクリプトって書かれてましたね。
今まで勘違いしていました。

393 :デフォルトの名無しさん :01/08/27 22:00 ID:YfpO6h5c
ボトルネックはCPUでもDiskI/OでもなくてNetworkI/Oなんでしょ。

インデックスで多少DiskI/Oが減ってread.cgiが軽くなっても
トラフィック量が変わらなきゃしょうがないよ。

それに.datの一部やインデックスの一部が壊れただけでそのスレ崩壊しそうだ。
シンプルな実装をこころがけたいね。過度の複雑化は往々にして破綻をもたらすぞ。

とりあえず gzip の圧縮レベル上げるとかしたらどう?CPUまだ余裕あるんでしょ

394 :デフォルトの名無しさん :01/08/27 22:01 ID:2irTHpac
あのー、キャップのパスワードから、初期のスクリプトに間違い無いとの噂を
聞きましたが・・・

395 :名無し娘。 ◆vP.bOZFQ :01/08/27 22:04 ID:ihlstQzQ
夜勤★さん近況
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998903558&st=94&to=94&nofirst=true

396 :名無し娘。 ◆vP.bOZFQ :01/08/27 22:08 ID:ihlstQzQ
一日猶予が与えられたので、もうちょっと実装しましょうか。

read.cgiに限っていえば、
・NetworkI/Oを減らせるのならCPUもDiskI/Oもかなり犠牲にしてよい
・その上で、CPUとDiskI/Oにもやさしく(安定性はあるに越したこと無い)
・それらが全部終わったら、.datやbbs.cgiにも対応を求めるような開発をはじめる
で、どうですか?>all

397 :仕様無しさん ◆NwLv.g/w :01/08/27 22:11 ID:LABmXIYU
そうすると、Web板での修正のうち、比較的手のかからないものをread.cgiに
取り込み始めたほうがいいですかね?

398 :37 → |  - -) :01/08/27 22:12 ID:NB7BRIbo
>>393
最新版(ver14.x)ではすでに圧縮レベルを最大にするように設定しています...
# あ、でもzlibを使用した場合だけだ...

399 :音楽侍 ◆NtVkSITE :01/08/27 22:13 ID:92bYvmYA
というか、このスレでは「read.cgi」=夜勤さん、集中でいいと思います。
ほかのbbs.cgi系の話などはスレを分けるべきですし。

400 :デフォルトの名無しさん :01/08/27 22:14 ID:0cm50H8s
>>396 それなら「出力バッファリングしてContent-Length吐き出し」やりませう

401 :名無し娘。 ◆vP.bOZFQ :01/08/27 22:18 ID:ihlstQzQ
>>397
read14.2.1.c & r2chhtml.h では、HTMLタグ類はほとんど(99%以上)、
r2chhtml.h の方に押し込められています。
ですから、read14.2.1.c の方には手を加えずに、軽量化を図ることが
できます!とても便利。
Web板の方に r2chhtml.h の軽量化はまかせちゃいましょうか?
# あまりカリカリに軽量化されてもまずいかもですが。

402 ::~名前() :01/08/27 22:20 ID:plW.7Hb6
>393
うん、これは言われるだろうと思っていた。(ごめん)
確かにNetwork負荷の事は考えていない。元々は、「かちゅーしゃが、あぼーん
されたレスを含むスレを読み込むとき、全部再読み込みしちゃうけど、何とかな
らないか?」と言うところから始まった話だから、全然考えていない訳でも無い
んだけど、そのためだけに、となると、コストが高すぎるのは承知。
あくまでも現状の話ではなく、その先の話だと思ってください。スレ違いというの
なら、すまぬ。将来的には、read.cgiの負荷を減らすのは、いずれやらなければ
ならない作業だとは思う。
datファイルの堅牢性の件だけど、そんなに低いとは思っていない。基本的にフ
ァイル更新は追記のみだし、削除処理にしてもファイルのサイズを変えないよう
に、インデックスとの整合性を崩さないように配慮しているつもりなのだが。もちろん、
現行のdatのシンプルさにはかないっこないし、堅牢性劣るだろうけど。でも、read.cgi
の負荷を減らそうと思えば、インデックスファイルを導入しなければならないのは、
必然だと思う。

しかし、スレ違いだな。>399さん、ごめん。ここまで書いたから、これだけ書き込みます。
つか、仕事に戻ろう。(明後日納期だったりする。)

403 :名無し娘。 ◆vP.bOZFQ :01/08/27 22:21 ID:ihlstQzQ
>>398
gzip の場合もそうしましょう。
>>399
bbs.cgi 系のスレ、私はスレ立てすぎで立てられないんです(泣
立てていただけませんか?

>1 に書くべきリンクはおおむね以下の通りです(Web板も書くべきかも)。

●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

●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

404 :仕様無しさん ◆NwLv.g/w :01/08/27 22:24 ID:LABmXIYU
>>401
そうですね。
あと、向こうはCになれてない人も多そうなので、
もう少し説明書きを足しといた方がいいと思うけど、
書き足したほうがいい項目って何があるかな?

405 :名無し娘。 ◆vP.bOZFQ :01/08/27 22:25 ID:ihlstQzQ
Web板での開発スレッドは
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998774537&ls=20
ですが、そろそろ新スレ移行しそう。。。

で、ヘッダファイルはあちらに任せていいんですかねぇ。

406 :名無し娘。 ◆vP.bOZFQ :01/08/27 22:32 ID:ihlstQzQ
>>404
うーん。完成品を1つだけ作ろうとせず、何段階かつくってもらえると安心かな。
あと、CSSやCookieに頼らず、.hだけで完結的になるようにお願いしないと。。。

# Makefileの一部分、read2ch.hに移そう。。。

272KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30