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

ra_dav makes too many requests

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • all
    • 1.7.0
    • libsvn_ra_neon

    Description

      ra_dav is making too many requests to the server. Typically, this is
      in the form of too many PROPFIND requests.
      
      Specific examples:
      
      * when adding a file, we do a PROPFIND to ensure that it doesn't
      already exist. We should skip the PROPFIND and just do the PUT, but
      use an 'If-None-Match: *' header to reject the PUT if something
      already exists.
      
      * 'svn cat' executes the triple PROPFIND (from public URL to VCC to
      baseline to fetching some props) *four* times. That is: 12 PROPFIND
      requests. Even worse, it does this even for 'svn cat' when
      (presumably) run against the "head", which means it should have just
      stuck with the public url.
      
      * (iirc; I haven't checked this one in a long while, but presume it is
      still there) during a fetch, we PROPFIND on the directory to get its
      props and the props of all the files in it. But we do per-file
      PROPFINDs *again* as we're getting the files. We should have already
      had a hash of resources whcih contains the props -- no need to fetch
      again.
      
      * during a commit, we do PROPFINDs to get the version url of the
      directories so we can do a CHECKOUT on them (cuz we're adding or
      deleting resources in it). however, the WC already *has* that version
      url, but won't give it to us in the getprop callback. thus, the commit
      editor has to get the url from the server.
      
      These are just the ones that I know. A number of different types of
      operations should be performed, and a review of Apache's access_log
      can be done to see what the client actually requested for each operation.
      

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            gstein Greg Stein
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment