• Dag Erling Smørgrav's avatar
    Mostly finish the LRU code and its integration: · 059e1bdf
    Dag Erling Smørgrav authored
     - Wrap the storage code so we don't need to duplicate the "toss out some old
       crap and try again" logic everywhere.  This will also help when / if we
       decide to add support for multiple concurrent storage arenas.
    
     - While I'm at it, implement sma_trim().
    
     - Rework the interaction between the LRU and expiry code.  Instead of placing
       objects retired by the LRU on death row, immediately terminate them.
    
     - Give the LRU code its own fake session and worker so we don't have to pass
       it a session pointer.
    
     - Rework the LRU API, and add LRU_DiscardOne() which discards a single
       object.  This is what the stevedore code uses.
    
    Known or suspected issues:
    
     - The LRU and expiry code should use the same mutex, and / or the possiblity
       for races between them should be examined closely.
    
     - LRU_Init() needs to be looked at and possibly moved.
    
     - LRU_DiscardSpace() and LRU_DiscardTime() are unused and quite possibly useless.
    
     - Logging and statistics related to the LRU need more attention.
    
     - The stevedore API can probably be improved.
    
    
    git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1586 d4fa192b-c00b-0410-8231-f00ffab90ce4
    059e1bdf
stevedore.h 2.13 KB