Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
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 perusing the Monastery: (18)
As of 2015-07-02 13:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (38 votes), past polls