The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Larry McVoy <lm@mcvoy.com>
To: Tony Finch <dot@dotat.at>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: Re: [TUHS] [SPAM] Re:  SCCS
Date: Thu, 12 Sep 2019 21:11:17 -0700	[thread overview]
Message-ID: <20190913041117.GR2046@mcvoy.com> (raw)
In-Reply-To: <alpine.DEB.2.20.1909121417040.5352@grey.csi.cam.ac.uk>

On Thu, Sep 12, 2019 at 02:44:45PM +0100, Tony Finch wrote:
> Larry McVoy <lm@mcvoy.com> wrote:
> 
> > If you have actual data that shows RCS to be faster I would like to
> > see that.  RCS read the whole file.  It could have been faster, it could
> > have put the offset into the file where the most recent version begain.
> > But it didn't.  It read the entire file.
> 
> In RCS the most recent version of the file is near the start of the ,v
> file after a list of revisions, so it doesn't have to read the deltas for
> the common case of checking out the current version of a file. I think
> there must be a similar optimization to copy the deltas without processing
> them when committing a new revision. But yes, as soon as you get away from
> working on the latest revision of the main branch, RCS becomes
> quadratically slow.

Yeah, you are right. The most recent version should be fast.  SCCS reads
the whole file and RCS does not in the common case.

But here is an SCCS win.  SCCS has a 16 bit ignore the carry bit checksum
over the whole file.  RCS has none of that.

You can argue that a 16 bit checksum is not good enough in this day of
md5sums, sha1 hashes, crcs, etc.

There are two places where it is great.

A) Memory errors.  Memory chips errors are none, parity, or ECC.
Parity has gone the way of the doodoo bird so we have none or ECC.  I can
pretty much promise you that the machine you are reading this on has no
error detection or correction.  Only high end servers have ECC.

That SCCS checksum is awesome because we can print out what the checksum
should be and what we got.  If it differs in a power of two then it is
a single bit error and that is your memory sucks.  I can't tell you how
many times customers said something was wrong and I made them run a 
memory check and it was their memory.  100's is too small, 1000's 
at least.

B) NFS errors.  So all NFS implementations, Suns included, had a bad
habit of returning a block of nulls.  I dunno why but that is a thing.
The SCCS checksum would detect that.  RCS and CVS did not have a checksum
so when NFS returned garbage, they were happy to return that to you.

It's really surprising how well the SCCS checksum has worked.  When we
went to a binary format we did CRC on each block and XOR so we could
put stuff back together.  I still have a lot of respect for that little
checksum.  It served us well.

--lm

  reply	other threads:[~2019-09-13  4:11 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-09  6:25 [TUHS] PWB vs Unix/TS Warner Losh
2019-09-09  6:36 ` arnold
2019-09-10 15:16 ` Clem Cole
2019-09-11  0:28   ` Steve Johnson
2019-09-11  3:53   ` Warner Losh
2019-09-11 15:36     ` Clem Cole
2019-09-11 16:55       ` [TUHS] IBM Unix source licenses [was " Charles H Sauer
2019-09-12 19:31         ` Kevin Bowling
2019-09-12 20:59           ` Clem Cole
2019-09-12 21:09             ` [TUHS] IBM Unix source licenses - Series/1 NUXI Ronald Natalie
2019-09-12 21:31             ` [TUHS] IBM Unix source licenses [was Re: PWB vs Unix/TS Warner Losh
2019-09-12 22:30             ` jcs
2019-09-12 23:12               ` reed
2019-09-12 23:22                 ` jcs
2019-09-12 23:29               ` [TUHS] IBM Unix source licenses Warren Toomey
2019-09-13  7:06                 ` arnold
2019-09-13  8:30                 ` SPC
2019-09-14 18:29                   ` Warner Losh
2019-09-12 21:29           ` [TUHS] IBM Unix source licenses [was Re: PWB vs Unix/TS Charles H Sauer
2019-09-11 17:49       ` [TUHS] " Richard Salz
2019-09-11 17:52         ` ron
2019-09-11 21:44           ` Clem Cole
2019-09-11 18:11       ` Larry McVoy
2019-09-11 18:18         ` Richard Salz
2019-09-11 18:54           ` Larry McVoy
2019-09-11 21:05             ` Steve Johnson
2019-09-11 21:34             ` Steve Johnson
2019-09-11 21:57             ` Clem Cole
2019-09-11 22:50               ` Arthur Krewat
2019-09-11 21:59           ` Clem Cole
2019-09-11 21:50         ` Clem Cole
2019-09-11 22:49         ` Dave Horsfall
2019-09-12  3:43           ` [TUHS] SCCS Larry McVoy
2019-09-12  4:20             ` George Michaelson
2019-09-12  4:31               ` [TUHS] [SPAM] SCCS Larry McVoy
2019-09-12 13:44                 ` Tony Finch
2019-09-13  4:11                   ` Larry McVoy [this message]
2019-09-13  5:54                     ` Dave Horsfall
2019-09-13  8:00                       ` Peter Jeremy
2019-09-13 15:23                         ` Larry McVoy
2019-09-13 21:36                         ` Dave Horsfall
2019-09-12  4:28             ` [TUHS] SCCS Jon Forrest
2019-09-12  4:33               ` Larry McVoy
2019-09-12  6:12                 ` William Corcoran
2019-09-12 14:35                   ` Clem Cole
2019-09-13  5:22                 ` Dave Horsfall
2019-09-13  5:50                   ` Bakul Shah
2019-09-12 16:45               ` Eric Allman
2019-09-12 17:29                 ` Clem Cole
2019-09-12 17:47                   ` Warner Losh
2019-09-13  8:12                   ` emanuel stiebler
2019-09-13 21:11                     ` Steffen Nurpmeso
2019-09-13 21:17                       ` Larry McVoy
2019-09-13 21:48                         ` Bakul Shah
2019-09-13 23:12                           ` Steffen Nurpmeso
2019-09-13 23:03                         ` Steffen Nurpmeso
2019-09-14  1:55                           ` [TUHS] [SPAM] SCCS Larry McVoy
2019-09-16 17:23                             ` [TUHS] SCCS Steffen Nurpmeso
2019-09-16 20:31                               ` Larry McVoy
2019-09-17 17:57                                 ` Steffen Nurpmeso
2019-09-18  8:48                               ` Eric Allman
2019-09-18 17:33                                 ` Steffen Nurpmeso
2019-09-12 20:07             ` Nemo
2019-09-11 16:05   ` [TUHS] PWB vs Unix/TS Paul Winalski
2019-09-11 17:14     ` ron
2019-09-14  0:44   ` [TUHS] a book (was Re: PWB vs Unix/TS) reed
2019-09-14  2:53     ` Warner Losh
2019-09-15  2:18       ` Jon Steinhart
2019-09-15  2:39         ` Clem Cole
2019-09-15  3:24         ` Adam Thornton
2019-09-14 22:46     ` Clem cole
2019-09-15  0:58       ` Adam Thornton
2019-09-15  3:30         ` Eric Allman
2019-09-15  4:21           ` Larry McVoy
2019-09-15  5:17             ` Jon Steinhart
2019-09-15 20:14               ` Clem Cole
2019-09-15 20:21                 ` Jon Steinhart
2019-09-15 20:12           ` Clem Cole
2019-09-15 21:28             ` Dave Horsfall
2019-09-15 23:27               ` Clem cole
2019-09-15 23:45                 ` Richard Salz
2019-09-15  7:43     ` Andy Kosela
2019-09-13 22:01 [TUHS] [SPAM] Re: SCCS Norman Wilson
2019-09-13 22:30 ` Dave Horsfall
2019-09-16 10:59   ` Tony Finch
2019-09-16 12:11 ` Leah Neukirchen
2019-09-16 21:45   ` Dave Horsfall
2019-09-16 22:21     ` George Michaelson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190913041117.GR2046@mcvoy.com \
    --to=lm@mcvoy.com \
    --cc=dot@dotat.at \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).