Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-4228

Consider sending per-directory, depth:1 PROPFINDs during ra_serf update handling

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.7.x
    • Fix Version/s: 1.8.0
    • Component/s: libsvn_ra_serf
    • Labels:
      None

      Description

      This idea is forked from issue #4173.
      
      The general complaint was that, when performing a checkout or any update
      operation which is adding new nodes, pre-1.8 ra_serf would turnaround with a
      server PROPFIND to fetch the properties on the new nodes.  For a checkout, this
      meant issuing a PROPFIND per node in the tree.  It was suggested that perhaps
      the client could issue a Depth:1 PROPFIND for each directory instead, caching
      the results on the client-side so that the properties retrieved for immediate
      children of the directory wouldn't have to be separately fetched.
      
      Note that, per issue #4173, ra_serf in 1.8 will no longer issue PROPFINDs at all
      against a 1.8 server.  So this optimization would only make sense when
      communicating against and older server.
      
      Note also that this optimization is not without its costs, both in terms of code
      complexity and, oddly enough, real inefficiency in situations where the set of
      added items is small, but the PROPFINDs needed to fill in the details for those
      things are quite large (say, a single added file within a directory that has
      hundreds of heavily-propertied sibling files).
      

        Attachments

          Activity

            People

            • Assignee:
              gstein Greg Stein
              Reporter:
              cmpilato C. Michael Pilato
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: