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

  • 2003 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the ldm-users archives: