If you are using mod_perl, you could set the hashes in (a module use'd in) the startup.pl script, thereby sharing it with all apache childs. If you change the hashes afterwards, they won't be shared anymore - assuming Unix copy-on-write mechanisms apply; i.e. you're using a forked apache - I don't know what the deal is with data sharing on apache 2 with threads.
Otherwise, you might want to take a look at Cache::Cache or IPC::ShareLite.
Update: I just remembered DBM::Deep, which might be easier to merge into your existing code. Never really tested it, though the documentation looks very promising.
Hope this helps,
Joost.
| [reply] |
I agree with using mod_perl as was previously mentioned. You may also want to look at various Tie'd hashes that pretty much leave the hash on disk, but after tie'ing, the tied hash behaves like any other hash in your program.
Caveat: i am not sure about thread safety with any of the disk bound tied hash modules. If you're just reading info, you're probably ok. If you're modifying data in these hashes, you've probably already dealt with thread safety.
| [reply] |
Looks like my answer lies in your comments! Thanks! | [reply] |