Hi,
I have a situation where I'd like to store some data in shared memory as
opposed to repetitive database requests. Basically, I'd read in a
(small) database table and serialize the results into shared mem. I've
read through the semaphore and shared memory documentation, but some
things are left unclear.
1) which is better to use, the shm_* sem_*, or the shmop functions? It
looks like shmop may be easier to use and more efficient.
2) How do I test if a shared memory segment exists, and create one if it
doesn't? Here's a bit of psuedo code I'd like to emulate:
if ( shared mem exists ) {
open shared mem
read data from shared mem
close shared mem
unserialize data
}
else {
do sql query
serialize data
open new shared mem (size of serialized data?)
write data
close shared mem
}
3) What size should the opened shared mem size be? shm_* mentions that
the values are serialized implicitly. Does shmop do this, or does this
need to be serialized first in the PHP code?
4) How do I know what to use for the system id for the memory segment?
What is a "safe" value to use? Is there a valid range? Are there some
ranges I should stay away from?
5) Is there a way to tell the age of a shared memory segment, or must I
do this within the data that is stored?
6) Are there any good examples of usage out there? The one that comes
with shmop doesn't show a way to test if the shared memory segment
exists before trying to create a new one (and how do I open an existing
shared mem segment, not necessarily knowing its size?)
I'm using Sparc Solaris 2.8, if that makes a difference.
Thanks!
--
Monte Ohrt <[EMAIL PROTECTED]>
http://www.ispi.net/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]