Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^3: Randomness encountered with CGI Session

by afoken (Abbot)
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?
[marto]: good morning all
[Corion]: Hi marto!
[Corion]: I hope you had a good weekend!
[Discipulus]: good morning again monks!
[choroba]: Good morning!
[Corion]: I have a rough plan to release an ImageNet classifier in Perl (well, using pretrained data, but still a nice toy)
Discipulus is going mad with the new win10 client.. tried mv Cortana /dev/null but no succes
[Corion]: Ouch - another pretrained set is available, using images from IMDB and Wikipedia. So I expect interesting results for non-PR images where people are pictured that are not made up

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (4)
As of 2017-09-25 08:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    During the recent solar eclipse, I:









    Results (277 votes). Check out past polls.

    Notices?