1. 11 Mar, 2008 2 commits
  2. 10 Mar, 2008 6 commits
  3. 09 Mar, 2008 3 commits
  4. 08 Mar, 2008 3 commits
  5. 07 Mar, 2008 7 commits
  6. 05 Mar, 2008 1 commit
  7. 04 Mar, 2008 7 commits
  8. 03 Mar, 2008 2 commits
  9. 29 Feb, 2008 1 commit
  10. 26 Feb, 2008 4 commits
  11. 25 Feb, 2008 2 commits
  12. 23 Feb, 2008 2 commits
    • Poul-Henning Kamp's avatar
      The expiry module keeps all cached objects on two data structures: · c314f882
      Poul-Henning Kamp authored
      the LRU list and the binary heap.  In both of these cases, operations
      on one object will result in certain fields in neighbor objects in
      these data structures to be updated.
      
      In difference from cache_hash.c which examine objects related by
      hash match where the existence of the hash lookup in the first place
      is a predictor for their likely use, in cache_expire the neighbor
      objects are totally unrelated and the fact that we update their
      list pointers or binheap index in no way indicates that they will
      get a cache hit any time soon.
      
      Paging in one page for a number of objects, just to move another
      object up or down the binheap or LRU list is thus not only slow,
      but also increases varnish' VM footprint for no real benefit.
      
      This commit moves the relevant housekeeping fields into a "objexp"
      structure, which gets hung off the objects when they enter the cache.
      
      The objexp structure is small (40 bytes on i386) so statistically it
      is more than an order of magnitude more likely to already be in core
      when we need it, compared to the object itself.
      
      
      
      
      git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@2537 d4fa192b-c00b-0410-8231-f00ffab90ce4
      c314f882
    • Poul-Henning Kamp's avatar
      e8b19897