Yeah, I was unsure about whether or not the o/s (slackware v8.0) would buffer
the writes - not syswrite - if they occured concurrently, which is why I was
looking into flock use.

Many thanks Bob

Andy

On Thu, 15 Nov 2001, Bob Showalter wrote:

> Date: Thu, 15 Nov 2001 10:40:17 -0500
> From: Bob Showalter <[EMAIL PROTECTED]>
> To: 'Andy McDowell' <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
> Subject: RE: Some advice needed on file locking with modperl'ed code
>
> > -----Original Message-----
> > From: Andy McDowell [mailto:[EMAIL PROTECTED]]
> > Sent: Thursday, November 15, 2001 6:37 AM
> > To: [EMAIL PROTECTED]
> > Subject: Some advice needed on file locking with modperl'ed code
> >
> >
> > Hi All,
> >
> > I am writing a modperl webapp (the new web interface for the
> > RipeNCC whois
> > database server) and I have need to store some data to a file.
> > Nothing heavy, just a few one liners like user query strings,
> > screen used,
> > server process time and a few others to do some analysis work
> > on potential
> > bottlenecks and whois query trends.
> >
> > The page will take about 5 hits a second when put into
> > production. Since its
> > modperl, this means multiple instances of page will be
> > running concurrently on
> > the webserver.
> >
> > Now the question:
> >
> > Will I need to use File::Flock to avoid write problems by
> > simultaneous writes to
> > the one file by concurrent instantiantions of application?
>
> Yes, I would recommend using locking. If the processes are appending
> to a log file, you can get away without locking if you use unbuffered
> writes (i.e. syswrite()) and make only a single call to write your
> log data. The kernel will keep these from getting intermixed.
>
> If you do use locking, you need to be sure the lock gets released
> at the end of the request, which can be an issue since the Apache/mod_perl
> process is long-lived. The easiest way IMO is to localize the file
> handle, so Perl will automatically clean it up no matter how your
> scirpt ends. If using Apache::Registry, you can also put your close/
> unlock in an END {} block (see mod_perl manpage).
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>

----------------------------------------------
Andy McDowell. RipeNCC. PH: +31 (0)20 535 4444

The difference between wisdom and foolishness,
is knowing when to keep your mouth shut.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to