Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^3: File Locking

by Anonymous Monk
on May 07, 2008 at 21:58 UTC ( #685336=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: File Locking
in thread File Locking

If you're pretty sure the friend is not on the list, then locking the file exclusive for the entire operation is a good idea.

However, locking the file in LOCK_EX (instead of LOCK_SH) will limit the concurrency of the operation to 1. So if you just want to check if they are (not) on the list, a shared lock will scale better. Check again after you get an exclusive lock, to avoid race conditions. (For even better scalability, use a database.)


Comment on Re^3: File Locking
Re^4: File Locking
by Anonymous Monk on Mar 23, 2011 at 13:15 UTC

    OPTIMIST (likely to find the item in the list): Start with a shared lock, and without unlocking, "promote" to an exclusive lock once not found; make sure there is a timer on the attempt to prevent a deadlock, and if the timer goes off then unlock and retry from the top.

    PESSIMIST (unlikely to find the item in the list): Use the exclusive lock from the beginning.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://685336]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2014-08-20 05:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (105 votes), past polls