自作CGIを評価するスレ (672レス)
1-

369
(2): 03/06/22 09:04 ID:??? AAS
>>368
いいんじゃないかな。
while文の所は・・・

while ($retry--) {
  return 0 if rename($lock_file, $lockex_file);
}
&error( 'Lock error' );

こうの方が良いかな。
370
(1): 368 03/06/22 10:02 ID:??? AAS
>>369
どうもありがとうございます。
他のスレでこういう書き方をみかけました。
while (!rename($lock_file, $lockex_file) {
 if (--$retry <= 0) {
  &error("lock error");
 }
}

>>369さんが書いてくれたものとどちらがいいんですかね?
371
(16): 03/06/24 13:54 ID:01cZwzPj(1/5) AAS
>>368
このルーチンだと穴がある。経験則だけど、アクセスが殺到すると簡単に壊れる。
説明するのめんどいので、

外部リンク[htm]:www.din.or.jp

この辺りでも読んでみて。

>>370
好みだと思う。

個人的には>>368>>369>>370もループの最中にreturnやら&errorで関数の
外に飛んでるので気持ち悪い(これも好みの問題)。
省8
372: 368 03/06/24 14:57 ID:??? AAS
>>371
ありがとうございます。
ロックが甘いということは分かりましたが、アンロックはどうでしょうか?
まだ371さんがおっしゃったサイトは見てないのでなんとも言えませんが…。

もう少し勉強してみることにします。

指摘されたリトライですが、
if (--$retry <= 0) {
こうですね。
373: 03/06/24 15:24 ID:??? AAS
>>371
> このルーチンだと穴がある。経験則だけど、アクセスが殺到すると簡単に壊れる。
> 説明するのめんどいので、

> 外部リンク[htm]:www.din.or.jp

> この辺りでも読んでみて。

その辺り読んで、載ってるルーチンそのまま使ってテストした所、
ファイル壊れました。

俺は、>>368くらいの簡単なロックで良いと思うけど。
このロックで壊れるようなアクセス受けてるって事は、
その説明に載ってるようなルーチンでも、ほぼ壊れる。
省3
374
(2): 03/06/24 15:33 ID:??? AAS
>どんなロックしててもファイルは壊れるんだから

そんなことはないよ。ただ言えることは、この板ではまだまともにロックできて
いるルーチンが1つも書かれてないな。
375
(2): 03/06/24 15:35 ID:??? AAS
>>374
>そんなことはないよ。ただ言えることは、この板ではまだまともにロックできて
>いるルーチンが1つも書かれてないな。
flock使っちゃだめ?
376
(1): 03/06/24 15:36 ID:??? AAS
>>374
どんなに集中アクセスを受けても、
絶対壊れないファイルロックってある訳ない。

あったら、ぜひ見て見たい。
377
(2): 03/06/24 15:37 ID:??? AAS
>>375
あ、ちなみに、flockでも壊れるんで。ファイル。
378
(2): 03/06/24 15:40 ID:??? AAS
AA省
379: 374 03/06/24 15:41 ID:??? AAS
>絶対壊れないファイルロックってある訳ない

この根拠がどこからくるのかわからないが、
少なくともとてつもないアクセス集中に対応できるように非ブロックモードで
タイムアウトを備えてないとまず無理だということは教えておこう。
380: 378 03/06/24 15:41 ID:??? AAS
あ、EUCにしてからSJISにもどすの忘れてるけど、そこは気にしないで
381: 371 03/06/24 15:46 ID:01cZwzPj(2/5) AAS
> どんなロックしててもファイルは壊れるんだから、

そんなことはない。

というか、上(大崎氏の)のルーチンでファイル壊れたんならファイルシステムに
不備があるか、打ち間違いがあるかパーミッションやらの設定を誤ってるかどれか。
ファイルシステム上でrenameが衝突しないという条件の元でならうまく行くはず。

アクセス集中でファイルが壊れるのはロックの機構に不備がある
だけで、正しい状況下で行われたUNIX系OSでのflockでは、ファイルシステム
にバグがあるか、ファイルシステム自体のクラッシュでもない限り壊れない。

>>375
flockはNFS越しの場合に失敗するから、ファイスシステムを予め
省8
382: 371 03/06/24 15:48 ID:01cZwzPj(3/5) AAS
>>377
ネットワークファイルシステムを使ってる場合はね。
それ以外で壊れるという話は(ファイルシステム開発中のバグ以外は)
聞いたことない。再現できたら結構すごいと思うが。
383: 371 03/06/24 15:54 ID:01cZwzPj(4/5) AAS
変な憶測並べる前にFAQくらいみんな読もうよ。

外部リンク[html]:elib.cs.berkeley.edu
384
(1): 03/06/24 18:50 ID:??? AAS
追加書き込みすれば壊れない。
385
(1): 371 03/06/24 19:10 ID:01cZwzPj(5/5) AAS
>>384
2つのプロセスが同時に追加書込しようとしたら、
その部分は壊れるよ。
386
(1): 03/06/24 20:17 ID:??? AAS
>>371
って言うかOSが関与しないファイルロックで信頼できるアルゴリズムってあるの?
387: 03/06/24 20:18 ID:??? AAS
>>385
何を以て壊れるとするかだな。
388
(1): 378 03/06/24 20:27 ID:??? AAS
>>378
はどうですか?
1-
あと 284 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.152s*