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

undeltification improvements

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • all
    • Beta
    • src
    • None

    Description

      As of commit #240, we're punting on deltifying files
      larger than the svn_txdelta_window_size.  This isn't as
      extreme as it sounds -- for example, only 5 files in the
      Subversion repository are larger than that, and they're
      fairly static -- but obviously won't scale very well
      when people want to version large collections of large
      objects that get frequently revised.
      
      (If you ever want to see why we punt on them, disable
      the check in reps-strings.c:svn_fs__rep_deltify() and
      add some printf's to rep_read_range() and its callers.
      You'll see re-undeltification increase fibonaccically
      as the second window in each delta makes src_data
      references into one or more previous windows of a
      deltified base_rep; this is unavoidable without either
      a sophisticated caching scheme to keep it from redoing
      work it did once and then tossed, or a delta combiner.
      And if the caching scheme happens in memory, then it is
      very easy to end up with the equivalent of having no
      upper limit on delta window size, which would defeat
      the whole purpose of having the windows in the first
      place.  Grin.  Sigh.)
      
      A true delta combiner is probably two weeks of work; it
      would compose a series of successively applicable deltas
      into one, adjust ops as it goes and preserving only the
      new data needed by the final composition.  See the file
      notes/fs-improvements.txt and comments in reps-strings.c
      for more.
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kfogel Karl Fogel
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: