Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^3: Randomness encountered with CGI Session

by afoken (Prior)
on Jun 09, 2010 at 15:39 UTC ( #843857=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Randomness encountered with CGI Session
in thread Randomness encountered with CGI Session

Is it common to use Storable to store CGI session data?

I don't know, and I don't really care. But I smell a race condition here. Are you using proper file locking to prevent two nearly parallel processes from overwriting the single storage file with out-of-date data?

File locking is highly OS dependant. There are several ways to lock a file, and most times, only one of them really protects you from race conditions. And it even gets worse when network drives are added. For that reason, and because I most times already have and use a database, I prefer using a relational database for storing sessions. It doesn't really matter which one, all of the big players (PostgreSQL, Oracle, MySQL, MS SQL Server) have working locking mechanisms, so I don't have to care about file locking. SQLite should also work, at least on a local file system on Unix derivates. I'm not sure about SQLite's file locking on Windows and on network drives, there may be problems.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)


Comment on Re^3: Randomness encountered with CGI Session
Replies are listed 'Best First'.
Re^4: Randomness encountered with CGI Session
by Anonymous Monk on Jun 09, 2010 at 16:08 UTC

    Thanks afoken :)

    I'm likely to go with a MySQL solution. Things like race conditions can cause unexpected behaviour and so difficult to troubleshoot. Furthermore, I have only used Storable briefly as an exploration, so don't know much about it and might be problematic to troubleshoot if things go wrong.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (8)
As of 2015-07-30 07:37 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 (270 votes), past polls