排他制御

調べてみると排他制御CGI 製作者にとっては根が深い問題のようだ。

MOE は色々と試した結果 flock は信用ならんと mkdir 方式を採用しているのだが、別に flock が悪かったわけではなく、mkdir でもアクセスが集中すると結局似たような頻度でロックが効いていない印象である。flock は論理的には完璧な排他を実現するとの主張もあるが、flock の実装が論理的に完璧である保障がないから机上の空論に過ぎない。まあこんなところまで疑い始めたら何も出来ないのだが。

実際のところロックの破れはログのタイムスタンプを見て判断する他なく、ログ取りに使用している Logger クラスの仕様的な問題でタイムスタンプが混乱している可能性も捨てきれない。疑うならソース読めという話になりそうだが。あとログをファイルに書き出すタイミングが前後する現象は普通に確認している。

ログへの出力が乱れているだけで排他は正常に機能していた、と言うのであれば有難いのだが、本音としては確認手段がログしかない以上そちらの出力が完璧であった方が精神衛生上ヨロシイのであった。