9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: sqweek <sqweek@gmail.com>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>
Subject: Re: [9fans] thoughs about venti+fossil
Date: Mon, 10 Mar 2008 19:19:35 +0900	[thread overview]
Message-ID: <140e7ec30803100319l31e1088fm9f6b4e89f92047f5@mail.gmail.com> (raw)
In-Reply-To: <68a46edfa8e40c2fc74da101e3dbe24b@terzarima.net>

On Fri, Mar 7, 2008 at 12:09 AM, Charles Forsyth <forsyth@terzarima.net> wrote:
> > But for HA applications, we still need some additional redundancy
>  > or at least some error diagnostics at application level. Well,
>  > we'll most likely needs this anyways, eg. to detect human fault
>  > or code bugs.
>
>  i hadn't realised the code i'd quoted only dealt with blocks in memory
>  (i didn't look hard enough once i'd found it), but russ then pointed out
>  that another option will do something like the check i'd intended.
>
>  given that, you have at least a check and a diagnostic that the
>  unlikely event ocurred.  it isn't the case i'd worry about first.  after all, the applications
>  pull the stuff into memory across interfaces that might have at most a parity
>  check, after transmission using protocols that use a fairly simple 16-bit
>  check sum, a compromise between speed of calculation and effectiveness.
>  one might sometimes add an end-to-end check, or digesting ... perhaps using SHA1!

 The difference between this and venti (aside from the factor of 2^60
or whatever it was) is that network/memory/disk errors are either
transient or managable.
 Silent network error? Going to be difficult to notice, but once you
do a retransmit will fix it (or if things are really bad, a
replacement network card).
 RAM Problems? If transient, it is fixed next reboot, otherwise
replace the module.
 Silent disk corruption? Rewrite the data or replace the disk.
 Venti hash collision? Um... well, it doesn't matter how many times we
try to rewrite the block in question, it is always going to collide.
Replacing venti seems less than satisfactory - what else provides the
same functionality? Our best option is to replace the hash and hope we
don't get a different collision. But, this leaves us with a whole
bunch of data addressed by the old hashing scheme which we presumably
have to write new code to convert[1]. New code means new bugs, and I'd
be lying if I claimed the prospect of writing such a utility to run on
several years of a venti archive didn't scare me.

[1] Unless you could do this with vac and co... my venti-fu is weak.
I'm setting my file server up soon, I promise!

 But if I normalise my worries based on the likelihood of the problem
occuring, then the real thing leaving a bad taste in my mouth is that
eventually something happens to force maintenance:
1) you get a hash collision
2) something displaces venti
3) venti changes
 OTOH, eventually you're going to run out of disk space, so venti is
unlikely to be the weak link here either.

 Well, I came up with one perhaps more interesting question while
thinking about what happens with different block sizes (in particular
blocks of one byte and blocks of the same size as the hash)... As I
understand it, venti uses the hash of the data to determine where on
disk to store the block. So, what happens when the hash resolves to an
address which is off the end of the disk?

-sqweek


  parent reply	other threads:[~2008-03-10 10:19 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-05  4:00 Enrico Weigelt
2008-03-05  4:11 ` Roman Shaposhnik
2008-03-05  4:43   ` erik quanstrom
2008-03-05  5:09     ` Roman Shaposhnik
2008-03-05  5:52   ` Enrico Weigelt
2008-03-05  6:24     ` geoff
2008-03-05  6:35     ` Taj Khattra
     [not found]     ` <7f575fa27b41329b9ae24f40e6e5a3cd@plan9.bell-labs.com>
2008-03-06  4:04       ` Enrico Weigelt
2008-03-06  4:13         ` Bruce Ellis
2008-03-06  4:15         ` andrey mirtchovski
2008-03-06  4:31           ` Bruce Ellis
2008-03-06  6:16             ` Enrico Weigelt
2008-03-06 18:50               ` ron minnich
2008-03-06 19:43                 ` Charles Forsyth
2008-03-06 19:45               ` Paul Lalonde
2008-03-06 20:18                 ` Bruce Ellis
2008-03-06 21:39                   ` Paul Lalonde
2008-03-08  9:06                     ` Enrico Weigelt
2008-03-06 22:10                   ` Martin Harriss
2008-03-06  6:40           ` Enrico Weigelt
2008-03-06 14:35             ` erik quanstrom
2008-03-06 14:58             ` Tom Lieber
2008-03-06 15:09             ` Charles Forsyth
2008-03-06 17:09               ` Robert Raschke
2008-03-10 10:19               ` sqweek [this message]
2008-03-10 12:29                 ` Gorka Guardiola
2008-03-10 13:20                 ` erik quanstrom
2008-03-10 19:00                   ` Wes Kussmaul
2008-03-10 19:27                     ` erik quanstrom
2008-03-10 20:55                       ` Bakul Shah
2008-03-11  2:04                       ` Wes Kussmaul
2008-03-11  2:10                         ` erik quanstrom
2008-03-11  6:03                           ` Bruce Ellis
2008-03-10 16:18                 ` Russ Cox
2008-03-10 18:06                   ` Bruce Ellis
2008-03-10 18:31                     ` Eric Van Hensbergen
2008-03-10 18:40                       ` Bruce Ellis
2008-03-10 18:46                     ` Geoffrey Avila
2008-03-10 20:28                       ` Charles Forsyth
2008-03-10 21:35                     ` Charles Forsyth
2008-03-06  9:54           ` Wilhelm B. Kloke
2008-03-08  9:37             ` Enrico Weigelt
2008-03-08  9:57               ` Bruce Ellis
2008-03-08 10:46               ` Charles Forsyth
2008-03-08 15:37               ` erik quanstrom
2008-03-06  4:40         ` cummij
2008-03-06  5:15           ` Bruce Ellis
2008-03-06  5:40         ` Uriel
2008-03-06  5:55           ` Bruce Ellis
2008-03-11 18:34             ` Uriel
2008-03-06 12:26           ` erik quanstrom
2008-03-05  5:04 ` geoff
2008-03-05  8:43 ` Charles Forsyth
2008-03-05  9:05   ` Gorka Guardiola
2008-03-05 14:33 ` Russ Cox
2008-03-06 12:39   ` Enrico Weigelt
2008-03-06 16:58     ` Russ Cox
2008-03-06 18:16       ` andrey mirtchovski
     [not found] ` <a553f487750f88281db1cce3378577c7@terzarima.net>
2008-03-06  5:38   ` Enrico Weigelt
2008-03-06  9:44     ` Joel C. Salomon
2008-03-05 14:03 erik quanstrom
2008-03-05 16:00 ` Russ Cox
2008-03-06 19:09 Brian L. Stuart
2008-03-06 19:50 ` Charles Forsyth
2015-04-21 18:30 hruodr
2015-04-21 19:46 ` Russ Cox
2015-04-23  7:21 hruodr

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=140e7ec30803100319l31e1088fm9f6b4e89f92047f5@mail.gmail.com \
    --to=sqweek@gmail.com \
    --cc=9fans@cse.psu.edu \
    /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).