info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: simple performance question on CVS


From: Mark D. Baushke
Subject: Re: simple performance question on CVS
Date: Sat, 02 Aug 2003 15:32:08 -0700

Larry Jones <address@hidden> writes:

> Mark D. Baushke writes:
> > 
> > The SCCS file format is the one that uses the mechanism you seem to
> > believe is a big hit on performance.
> 
> No, it doesn't, although that's a common misconception.  SCCS uses an
> "interleaved delta" format that allows it to reconstruct any revision of
> the file in constant time.  For more details, see:
> <http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/files/aixfiles/sccsfile.htm>

Hmmm... that is a good document. Thanks for pointing it out.

It does show that the SCCS file format includes a checksum which I
really wish that the RCS format had as well. Some of the NFS corruptions
that have hit folks over the years would have been found more quickly if
it had this feature... oh well.

After looking around, I think I like this description of interleaved
deltas (see http://docs.freebsd.org/44doc/psd/13.rcs/paper-3.html for
more info) best:

| There is an important alternative for representing deltas that
| affects performance. SCCS3, a precursor of RCS, uses interleaved
| deltas. A file containing interleaved deltas is partitioned into
| blocks of lines. Each block has a header that specifies to which
| revision(s) the block belongs. The blocks are sorted out in such a
| way that a single pass over the file can pick up all the lines
| belonging to a given revision. Thus, the regeneration time for all
| revisions is the same: all headers must be inspected, and the
| associated blocks either copied or skipped. As the number of
| revisions increases, the cost of retrieving any revision is much
| higher than the cost of checking out the latest trunk revision
| with reverse deltas. A detailed comparison of SCCS's interleaved
| deltas and RCS's reverse deltas can be found in Reference 4. This
| reference considers the version of RCS with the stream editor
| only. The piece table method improves performance further, so that
| RCS is always faster than SCCS, except if 10 or more deltas are
| applied.
|
| Additional speed-up for both delta methods can be obtained by
| caching the most recently generated revision, as has been
| implemented in DSEE.5 With caching, access time to frequently used
| revisions can approach normal file access time, at the cost of
| some additional space.

The entire paper may be referenced here:

  http://docs.freebsd.org/44doc/psd/13.rcs/paper.html

        Thanks,
        -- Mark




reply via email to

[Prev in Thread] Current Thread [Next in Thread]