雪だるま作戦において開発をすすめている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に持たせたい・持つべきな機能をあぶり出し、実装仕様を詰めていくことを目標にしています。
【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
NGNG126root▲ ★
NGNG Samba24の処理
a) Samba24用DB初期化用API
bbsdはbbs.cgi船が起動する時に指令を受ける
(bbs.cgiは最初にこの指令を出すように組まれる)
入力: 板名bname、秒数s
bbsdが起動して最初に指令を受けたら板別にDBを作り、
秒数sや回数nが異なった指令を受けたら、DBをconfigしなおす。
ただし、DBに蓄えているものは保持する。
指令が既にあるものと同じ秒数や回数だったら、何もしない。
万一a)の前にb)を受けたら、常に正常終了でよい。
# 最大10分、Samba24のDBが作られなくなりますが、、、。
# HDD上にDBをダンプするなり作るなりして、そこに前にあったbnameやsを入れるのもありです。
# というか、そのほうがよさげか。そうすればa)が来なくてもサービスできるですね。
# 将来秒数sはSETTING.TXTになるとのこと。
a) Samba24用DB初期化用API
bbsdはbbs.cgi船が起動する時に指令を受ける
(bbs.cgiは最初にこの指令を出すように組まれる)
入力: 板名bname、秒数s
bbsdが起動して最初に指令を受けたら板別にDBを作り、
秒数sや回数nが異なった指令を受けたら、DBをconfigしなおす。
ただし、DBに蓄えているものは保持する。
指令が既にあるものと同じ秒数や回数だったら、何もしない。
万一a)の前にb)を受けたら、常に正常終了でよい。
# 最大10分、Samba24のDBが作られなくなりますが、、、。
# HDD上にDBをダンプするなり作るなりして、そこに前にあったbnameやsを入れるのもありです。
# というか、そのほうがよさげか。そうすればa)が来なくてもサービスできるですね。
# 将来秒数sはSETTING.TXTになるとのこと。
127root▲ ★
NGNG (続き)
b) Samba24用DB登録&チェック用API
1) 書き込みリクエストがあると、bbs.cgi は投稿に固有のID(*1)をキーに、
Samba24用DBに問い合わせを出す
入力: bname、ID
(*1)IPアドレスまたは携帯固有番号またはp2の番号
2) bbsdは投稿に固有のIDをキーに、Samba24用DBを検索する
DBでは、
「そのIDで問い合わせを受けた通産回数」と「そのIDで問い合わせを受けた最後の時間」
を保持している
今まで1回もそのIDで問い合わせを受けたことがなければ、
DBに「ID、1回、その時間」を登録して、正常終了を呼び出し元に返す
b) Samba24用DB登録&チェック用API
1) 書き込みリクエストがあると、bbs.cgi は投稿に固有のID(*1)をキーに、
Samba24用DBに問い合わせを出す
入力: bname、ID
(*1)IPアドレスまたは携帯固有番号またはp2の番号
2) bbsdは投稿に固有のIDをキーに、Samba24用DBを検索する
DBでは、
「そのIDで問い合わせを受けた通産回数」と「そのIDで問い合わせを受けた最後の時間」
を保持している
今まで1回もそのIDで問い合わせを受けたことがなければ、
DBに「ID、1回、その時間」を登録して、正常終了を呼び出し元に返す
128root▲ ★
NGNG (続き)
3) そのIDで問い合わせを受けたことがある場合は、
3.1) もし、前に問い合わせを受けてからs秒以上経過していた場合には、
DBのそのIDのエントリをリセット(*2)して、正常終了を呼び出し元に返す
(*2)「ID、1回、その時間」にする
3.2) もし、前に問い合わせを受けてからs秒未満だった場合には、
DB側のそのIDのエントリの回数により、下記のように動作が分かれる
3.2.1) もし、そのIDでの通産問い合わせ回数が注意回数
(デフォルト3回、何かで変更可能になっているとうれしい)以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス1」を呼び出し元に返す
3.2.2) もし、そのIDでの通産問い合わせ回数が注意回数を超えているが、
規制回数(デフォルト5回、何かで変更可能になっているとうれしい)以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス2」を呼び出し元に返す
3.2.3) もし、そのIDでの通産問い合わせ回数が規制回数を超えたら、
DBを「ID、永久」にし、
「異常ステータス3」を呼び出し元に返す
3.2.4) 「ID、永久」の状態になった以降は、s秒以上の時間を空けた問い合わせが
あったとしても、すべて「異常ステータス3」を呼び出し元に返す
3) そのIDで問い合わせを受けたことがある場合は、
3.1) もし、前に問い合わせを受けてからs秒以上経過していた場合には、
DBのそのIDのエントリをリセット(*2)して、正常終了を呼び出し元に返す
(*2)「ID、1回、その時間」にする
3.2) もし、前に問い合わせを受けてからs秒未満だった場合には、
DB側のそのIDのエントリの回数により、下記のように動作が分かれる
3.2.1) もし、そのIDでの通産問い合わせ回数が注意回数
(デフォルト3回、何かで変更可能になっているとうれしい)以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス1」を呼び出し元に返す
3.2.2) もし、そのIDでの通産問い合わせ回数が注意回数を超えているが、
規制回数(デフォルト5回、何かで変更可能になっているとうれしい)以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス2」を呼び出し元に返す
3.2.3) もし、そのIDでの通産問い合わせ回数が規制回数を超えたら、
DBを「ID、永久」にし、
「異常ステータス3」を呼び出し元に返す
3.2.4) 「ID、永久」の状態になった以降は、s秒以上の時間を空けた問い合わせが
あったとしても、すべて「異常ステータス3」を呼び出し元に返す
129root▲ ★
NGNG c) Samba24用DBリセット用API
F22から呼ばれる。
これを呼ぶと、そのbbsdで管理しているSamba24用DBの中身は全部ゼロクリアされる
ただし、a) で初期化した値はそのまま残る
d) Samba24用DB状況調査用API
F22から呼ばれる。
これを呼ぶと、いくつのIDがSamba24用DBに登録されているかを返す
F22から呼ばれる。
これを呼ぶと、そのbbsdで管理しているSamba24用DBの中身は全部ゼロクリアされる
ただし、a) で初期化した値はそのまま残る
d) Samba24用DB状況調査用API
F22から呼ばれる。
これを呼ぶと、いくつのIDがSamba24用DBに登録されているかを返す
130root▲ ★
NGNG …というかんじです。日本語が、微妙かもしれないですね。
変なところがあったら、書いてくださいです。> SunOSさん
日本語で説明を書き下すと、以外に複雑な形になってしまいましたが、
実際の中身は、それほどのものでもないです。
ようは、同じIDで短い時間の間に何度も何度もやると、だんだんと出世していって、
そのうち永久になっちゃいますよ、っていうかんじです。
それを、コスト低く実現していると。
今日は、こんなところで。
変なところがあったら、書いてくださいです。> SunOSさん
日本語で説明を書き下すと、以外に複雑な形になってしまいましたが、
実際の中身は、それほどのものでもないです。
ようは、同じIDで短い時間の間に何度も何度もやると、だんだんと出世していって、
そのうち永久になっちゃいますよ、っていうかんじです。
それを、コスト低く実現していると。
今日は、こんなところで。
131root▲ ★
NGNG …と、ここまで書いて、
s秒をbbsdで管理するか、bbs.cgiで管理するか、
微妙なかんじもしてきました。
つまり、bbsdでは「回数」「前の問い合わせからの経過秒数」を戻りにして、
Sambaの判定は、bbs.cgiでやらせたほうがいいんじゃないかなと。
その路線だと、、、。ちょっと、再度考えてみるですかね。
s秒をbbsdで管理するか、bbs.cgiで管理するか、
微妙なかんじもしてきました。
つまり、bbsdでは「回数」「前の問い合わせからの経過秒数」を戻りにして、
Sambaの判定は、bbs.cgiでやらせたほうがいいんじゃないかなと。
その路線だと、、、。ちょっと、再度考えてみるですかね。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日が社員を処分 担当番組「ナスD大冒険TV」打ち切り [muffin★]
- 「何もしないほうが得」消極的な日本人が増える背景 “自ら行動しない態度”が広がっている ★2 [おっさん友の会★]
- 【大阪】万博盆踊り、4000人募集 テーマソングでギネス挑戦 [七波羅探題★]
- 【野球】「日本もやめればいいのに。うるさいから」…MLB開幕戦を受け、鳴り物応援に玉川徹氏が提言 [ネギうどん★]
- 元「RADWIMPS」桑原、“もといたバンド”に持論「みんな過大評価しすぎ」「チケット余りまくり…みんなが思ってるほど求められてない」 [muffin★]
- 安倍晋三元首相の暗殺事件 「なぜ公判が始まらないのか」 保守党・島田議員が国会質問 [少考さん★]
- 【悲報】斎藤元彦陣営のネット広報担当会社が投稿したnoteで騒然★582 [931948549]
- 【悲報】イオンさん。自民党政権の “値上げ推進” に反旗を翻す。 食品や日用日1000品目を1~3割も「値下げ」してしまう😱 [485983549]
- 🏡👈🥺ツンツン
- 【朗報】「赤木ファイル」、6月上旬に開示されるもよう。天国の安倍さんに届け✨ [519511584]
- 仙台市長、851万円のアルファードを買っただけで「高すぎる」と炎上wwwwwwwwwwwwwwwwww [479913954]
- 日本人のクレーム、限界突破 [159091185]