X



トップページ運用情報
498コメント239KB
【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
■ このスレッドは過去ログ倉庫に格納されています
0001root▲ ★垢版NGNG
雪だるま作戦において開発をすすめているbbsdでは、

                   +- [ フロントエンドサーバlive22x1 ] -- ユーザは
[ バックエンドサーバlive22 ] -+- [ フロントエンドサーバlive22x2 ] -- live22xという代表名で
 制御プログラムbbsd      +- [ フロントエンドサーバlive22x3 ] -- これらにアクセス
  |     |     |        dat直読みや、
dat subject.txt subback.html   bbs.cgiやread.cgiやofflaw.cgi、
書きこみログ(芋掘り)ファイルなど  (こちらは基本的に書き込み操作なし)
(書き込み操作はこちらで)

# 復帰/削除cgiなどについては、さてどっちかな => 今後の課題

という形で「ユーザの相手」と「各種ファイル処理」を複数のサーバに分業することにより、
さらなるパフォーマンスの向上を目論んでいます。

つまりこの場合、dat/subject.txt/subback.htmlは
バックエンドサーバで動作するbbsdというプログラムがリクエストに応じて生成し、
更新や場合によっては削除する形となります。

ということで、bbs.cgiをはじめとする従来2ちゃんねるで動いているcgiでは、
これらが同じサーバにあるつもりでファイル操作をしていましたが、
上記に示すように、少なくとも元本は同じサーバにはなくなるため、
何らかの形で対策を考慮する必要があります。

また現在、ID生成の種やSamba24や
timcount/timeclose等の規制関係で使用している一時ファイル等、
複数のフロントエンドサーバが同じ情報を、
何らかの形で共有する必要があるものもあります。

このスレッドではこれらの処理方法や実装方法について考えながら、
bbsdに持たせたい・持つべきな機能をあぶり出し、実装仕様を詰めていくことを目標にしています。
0075root▲ ★垢版NGNG
で、雪だるま環境では、この種ファイルは、複数あるフロントエンドで
同じものを共有する必要があります。
でないと、担当したクライアントごとに、IDが変わってしまいます。

しかも、0:00になったことをbbs.cgiが検知すると、
ファイルを更新する操作がかかります(サブルーチンになっています)。

なので、雪だるま環境では、こんな動きになると思います。

・bbs.cgiは最初のいっぱつめでbbsdに「板名」「今日のID種ちょうだい」と言う
・bbsdは「その板の今日のIDの種はこれだよ」と、16バイトのバイナリをbbs.cgiに返す
・bbs.cgiはディスク上(メモリディスクがベター)に、今まで同様に記録する
・bbs.cgiの動き的には、あとは今までと一緒

(続く)
0076root▲ ★垢版NGNG
ということでbbsdでは、

・bbs.cgi に該当リクエストを聞かれた時点で、
もしファイルがなければ、public_html/板名/md5.cgi などという名前で、
>>73 のフォーマットのファイルを作成する

・もし>>73のファイルが既にあり、今日の日付だったら、
その中身の種を返す

・日付が変わっていたら、ファイルを作り直して、作り直した結果の種を返す

のように動く API を、一つ用意していただくとよいと思うです。

種は例えば /dev/random いくばくか読むなどして、16バイトのバイナリを、
板ごとにユニークに作っていただければよいです。

まずはこんなところで。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況