2014年06月02日
サーバ方式ではないログの多重追記方式を考えてみる (3)
前回までに考えた、同一ログファイルの更新の件だが、サンプルプログラムを作成し、多重スレッド・多重プロセス起動をしてみたら、どうもだめだめな感じだ
バッファの書き込み先が、別スレッドでのEOFアドレスだったりするようで、EOF越で書き込まれた領域が NUL で埋まっていた
EOF まで移動して書き込むあたりがどうもだめなのかもしれない
もちろん、多重起動しなければ普通に書き込まれるので、やはり排他制御部分が思わしくないようだ
思い付きのアルゴリズムは信頼性がないのだろうな
※一応、MSDN ではログファイルなどの書き込みで、EOF からサイズ分だけロックする方式が可能だという説明もあったので、そもそもそうしたやり方が禁止されているわけではなさそう (でも、非推奨なのかも;ドキュメントは見つけていないが)
お名前.com レンタルサーバー
排他制御は、ファイルシステムでやるのではなく、ミューテックスでやるのが、本筋っぽいので、そっちで実装することにした
お手軽に、かつオーバヘッドが少ないのかと思ったが、おそらく実現するのにもっと研究が必要な気がする
ちょっと疲れてしまった
バッファの書き込み先が、別スレッドでのEOFアドレスだったりするようで、EOF越で書き込まれた領域が NUL で埋まっていた
EOF まで移動して書き込むあたりがどうもだめなのかもしれない
もちろん、多重起動しなければ普通に書き込まれるので、やはり排他制御部分が思わしくないようだ
思い付きのアルゴリズムは信頼性がないのだろうな
※一応、MSDN ではログファイルなどの書き込みで、EOF からサイズ分だけロックする方式が可能だという説明もあったので、そもそもそうしたやり方が禁止されているわけではなさそう (でも、非推奨なのかも;ドキュメントは見つけていないが)
お名前.com レンタルサーバー
排他制御は、ファイルシステムでやるのではなく、ミューテックスでやるのが、本筋っぽいので、そっちで実装することにした
お手軽に、かつオーバヘッドが少ないのかと思ったが、おそらく実現するのにもっと研究が必要な気がする
ちょっと疲れてしまった
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/2469008
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック