ldm'rs-
my office mate and i were just talking about the possibility of using
anonymous mappings for ldm product queues. the normal mode of operation here
is to wipe out/re-create the product queue at boot time - in otherwords we do
not make use of the persistent nature of product queues.
amenda (my office mate) is now looking into a performance problem we are
having on a machine and considering using a ram disk to store the product
queue on. we are thinking that it *might* be possible to simply do an
anonymous mapping to boost performace. this would obviously be a
non-persistent queue but this fact is currently not an issue for us anyhow.
i am currently considering something _in_the_spirit_ of:
--- pq.c.org 2003-07-15 18:46:05.000000000 +0000
+++ pq.c 2003-07-15 18:49:26.000000000 +0000
@@ -2979,6 +2979,10 @@
if(!fIsSet(mflags, MAP_FIXED))
fSet(mflags, MAP_VARIABLE);
#endif
+#if defined(MAP_ANON) || defined(MAP_ANONYMOUS)
+ if (getenv("LDM_MAP_ANON") || getenv("LDM_MAP_ANONYMOUS"))
+ fSet(mflags, MAP_ANONYMOUS);
+#endif
mm = (void *) mmap(*ptrp, extent, prot, mflags, fd, offset);
if(mm == (void *)((ptrdiff_t)-1))
does anyone have idea why this might be a *bad* idea? it seems like a good
performance boost in situations where a persistent queue is not desired while
not requiring significantly more memory to be present...
-a
p.s.
please cc me on any reply - i am not currently subscribed to the list!
====================================
| Ara Howard
| NOAA Forecast Systems Laboratory
| Information and Technology Services
| Data Systems Group
| R/FST 325 Broadway
| Boulder, CO 80305-3328
| Email: ara.t.howard@xxxxxxxx
| Phone: 303-497-7238
| Fax: 303-497-7259
| ~ > ruby -e 'p(%.\x2d\x29..intern)'
====================================