NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
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)' ====================================
ldm-users
archives: