1. 03 Jul, 2007 2 commits
  2. 02 Jul, 2007 10 commits
  3. 29 Jun, 2007 5 commits
  4. 28 Jun, 2007 7 commits
  5. 27 Jun, 2007 3 commits
    • 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
    • Poul-Henning Kamp's avatar
      Don't fill the entire workspace with read-ahead data. · c8e9f809
      Poul-Henning Kamp authored
      Eventually we need to separate the "max http header size" from the
      workspace size, but that will take a bit of pondering.
      
      
      git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1585 d4fa192b-c00b-0410-8231-f00ffab90ce4
      c8e9f809
    • Poul-Henning Kamp's avatar
      Make sure to reset the workspaces of the backend connection between · 5691f839
      Poul-Henning Kamp authored
      requests, otherwise we end up filling it up with Content-Length: headers
      if we manage to keep the backend busy.
      
      Also make the snapshot of the preferred workspace-size volatile to ensure
      that we are consistent.
      
      
      
      git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1584 d4fa192b-c00b-0410-8231-f00ffab90ce4
      5691f839
  6. 26 Jun, 2007 9 commits
  7. 25 Jun, 2007 4 commits
    • Poul-Henning Kamp's avatar
      remove "name" from the parameters, it isn't one. · 7ccf0d92
      Poul-Henning Kamp authored
      
      git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1573 d4fa192b-c00b-0410-8231-f00ffab90ce4
      7ccf0d92
    • Poul-Henning Kamp's avatar
      Redo the -n argument code, it had too many problems: · 2519dcc2
      Poul-Henning Kamp authored
       
      We need to process -P and -f arguments before we change directory.
      (ticket 120)
      
      (XXX: what about storage and hash arguments ??)
      
      The daemon(3) call should not change our directory subsequently.
      (ticket 121)
       
      There is no need to enforce a hostname style format on the argument,
      a directory nam makes much more sense, since that is what we need. 
      Defaulting to /tmp instead of our hostname makes more sense (ticket 119).
      
      This also allows the admin to use a different directory if /tmp is
      mounted noexec (ticket 111) 
       
      Put the directoryname used in the proctitle (via heritage)
       
      XXX: for docs: vcl.load CLI commands will work relative to the -n directory.
      
      
      
      git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1572 d4fa192b-c00b-0410-8231-f00ffab90ce4
      2519dcc2
    • Poul-Henning Kamp's avatar
      Make it possible to pass a filedescriptor to VCC_CompileFile() if the file · 5e497ca3
      Poul-Henning Kamp authored
      is already open.  The filedescriptor will be closed.
      
      
      
      git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1571 d4fa192b-c00b-0410-8231-f00ffab90ce4
      5e497ca3
    • Dag Erling Smørgrav's avatar
      First step in implementing early retirement of objects when the cache fills · 76646960
      Dag Erling Smørgrav authored
      up: implement a "sloppy" LRU list.  An object is placed on the list (or moved
      to the head of the list if it's already on it and hasn't moved recently) by
      calling LRU_Enter(), and removed by calling LRU_Remove().  LRU_DiscardSpace()
      will iterate through the LRU list, starting at the back, and retire objects
      (by adding them to the deathrow list) until the sum of the length of the
      retired objects reaches a certain number.  Similarly, LRU_DiscardTime() will
      retire objects which haven't moved since a specified cutoff date.  In both
      cases, vcl_discard() will be given a chance to inspect the object and veto
      its retirement.
      
      Currently, LRU_Enter() and LRU_Remove() are called from HSH_Lookup() and
      HSH_Deref() respectively.  There may be better alternatives.
      
      Neither LRU_DiscardSpace() nor LRU_DiscardTime() is currently called from
      anywhere.  There are a number of issues to consider: for instance, even if
      LRU_DiscardSpace() is called when a high-water mark is reached, there is
      still a possibility that the cache might fill up before it has had a chance
      to finish and the hangman has had a chance to process the deathrow list.
      
      
      git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1570 d4fa192b-c00b-0410-8231-f00ffab90ce4
      76646960