hardburn has asked for the wisdom of the Perl Monks concerning the following question:
We have a large number of objects that we'd like to cache, running on mod_perl. We normally do this with MLDBM or some other file cache module that supports Perl multi-layer datastructures, but I'd like to explore an alternative using readonly scalars implemented via SvREADONLY, such as what Scalar::Readonly uses.
A big requirement is that the data stays shared between apache processes. Most of our applications don't need to write to the cache after server startup, so we can build the datastructures, set SvREADONLY flag on all its scalars, and should expect that the data stays shared.
We should be able to expect that our own code leaves the SvREADONLY flag alone to maintain sharing. However, I'm worried that perl will do something on its own that will end up with the scalars becoming unshared.
So my question is: how far can we rely on perl to keep SvREADONLY scalars shared?
"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Reliability of SvREADONLY
by perrin (Chancellor) on Dec 13, 2006 at 18:05 UTC | |
|
Re: Reliability of SvREADONLY
by Joost (Canon) on Dec 13, 2006 at 18:47 UTC | |
|
Re: Reliability of SvREADONLY (PV, need)
by tye (Sage) on Dec 13, 2006 at 21:05 UTC | |
|
Re: Reliability of SvREADONLY
by jbert (Priest) on Dec 13, 2006 at 19:00 UTC | |
|
Re: Reliability of SvREADONLY
by diotalevi (Canon) on Dec 14, 2006 at 02:41 UTC | |
|
Re: Reliability of SvREADONLY
by zshzn (Hermit) on Dec 14, 2006 at 03:56 UTC | |
by ikegami (Patriarch) on Dec 14, 2006 at 04:14 UTC |