Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

mmap(pqueue_fd,... MAP_SHARED|MAP_ANONYMOUS)

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)'
  ====================================

 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Community Programs   Unidata is a member of the UCAR Community Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690