Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NMZ.slogについて
Message-Id: <3E8AA84E.5A6ED719@xxxxxxxxxxxxxxx>
Date: Wed, 02 Apr 2003 18:07:26 +0900
From: Tadamasa Teranishi <yw3t-trns@xxxxxxxxxxxxxxx>
Subject: [namazu-users-ja] Re: NMZ.slogについて
| > slogの1行はそんなに長くない(BUFSIZ以下)と仮定すれば
| > stdioが1発のwriteシステムコールで処理してくれるはずで
| > そうすればKernelの方が排他制御してくれるので
| > 2つのログが混ざるなんてことはないとおもいます。
|
| ないとは思いますが、fprintf() というか stdio というかの実装依存な
| 部分ではないかと思います。
|
| ロックするのが筋だと思いますが、ロックしなくてもBUFSIZ以下なら
| 確実に大丈夫(保障された動作)だということでしょうか?
| # だとすると、ちょっと私の認識に誤りがあるので教えていただければ
| # 幸いです。
(たいていのOSでは)writeシステムコールがあった時点でそのファイルをライ
トロックします。これはたしかPOSIX方面の仕様だったと聞いてますが調べた
ことはないです。
データベースなど、巨大ファイルに複数スレッドで書き込みたいプログラムで
は、このロックがあるために同時に1スレッドしか書き込めなくて性能が出な
いらしいです。一部のOS(たとえばSolaris9とか)では同時書き込みができるよ
うに改良されてるみたいですが確認してません。
そういえば、以上の話はローカルファイルシステムの話で
NFSで複数クライアントから同時書き込みがあった場合で
writeシステムコールで一気に1MBも書くような場合はだめです。
--
鯉江英隆 <hide@xxxxxxxx>