広告

posted by fanblog

2014年06月02日

サーバ方式ではないログの多重追記方式を考えてみる (3)

前回までに考えた、同一ログファイルの更新の件だが、サンプルプログラムを作成し、多重スレッド・多重プロセス起動をしてみたら、どうもだめだめな感じだ

バッファの書き込み先が、別スレッドでのEOFアドレスだったりするようで、EOF越で書き込まれた領域が NUL で埋まっていた
EOF まで移動して書き込むあたりがどうもだめなのかもしれない
もちろん、多重起動しなければ普通に書き込まれるので、やはり排他制御部分が思わしくないようだ
思い付きのアルゴリズムは信頼性がないのだろうな

※一応、MSDN ではログファイルなどの書き込みで、EOF からサイズ分だけロックする方式が可能だという説明もあったので、そもそもそうしたやり方が禁止されているわけではなさそう (でも、非推奨なのかも;ドキュメントは見つけていないが)


お名前.com レンタルサーバー
排他制御は、ファイルシステムでやるのではなく、ミューテックスでやるのが、本筋っぽいので、そっちで実装することにした
お手軽に、かつオーバヘッドが少ないのかと思ったが、おそらく実現するのにもっと研究が必要な気がする

ちょっと疲れてしまった



この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/2469008
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: