From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Tue, 20 Jan 2009 14:30:33 -0800 From: "Roman V. Shaposhnik" In-reply-to: <30fef936405d9216f98c10a5c32b42ea@quanstro.net> To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Message-id: <1232490633.11686.26.camel@goose.sun.com> MIME-version: 1.0 Content-type: text/plain Content-transfer-encoding: 7BIT References: <30fef936405d9216f98c10a5c32b42ea@quanstro.net> Subject: Re: [9fans] Changelogs & Patches? Topicbox-Message-UUID: 8365e860-ead4-11e9-9d60-3106f5b1d025 On Tue, 2009-01-20 at 09:19 -0500, erik quanstrom wrote: > > > in the case of zfs, my claim is that since zfs can reuse blocks, two > > > vdev backups, each with corruption or missing data in different places > > > are pretty well useless. > > > > > > Got it. However, I'm still not fully convinced there's a definite edge > > one way or the other. Don't get me wrong: I'm not trying to defend > > ZFS (I don't think it needs defending, anyway) but rather I'm trying > > to test my mental model of how both work. > > if you end up rewriting a free block in zfs, there sure is. you > can't decide which one is correct. You don't have to "decide". You get use generation # for that. > > P.S. Oh, and in case of ZFS a damaged vdev will be detected (and > > possibly re-silvered) under normal working conditions, while > > fossil might not even notice a corruption. > > not true. one of many score checks: > > srv/lump.c:103: seterr(EStrange, "lookuplump returned bad score %V not %V", u->score, score); I don't buy this argument for a simple reason: here's a very easy example that proves my point: term% fossil/fossil -f /tmp/fossil.bin fsys: dialing venti at net!$venti!venti warning: connecting to venti: Connection refused term% mount /srv/fossil /n/f term% cd /n/f/test term% echo 'this is innocent text' > text.txt term% cat text.txt this is innocent text term% dd -if /dev/cons -of /tmp/fossil.bin -bs 1 -count 8 -oseek 278528 -trunc 0 this WAS 8+0 records in 8+0 records out term% rm /srv/fossil /srv/fscons term% fossil/fossil -f /tmp/fossil.bin fsys: dialing venti at net!$venti!venti warning: connecting to venti: Connection refused create /active/adm: file already exists create /active/adm adm sys d775: create /active/adm: file already exists create /active/adm/users: file already exists create /active/adm/users adm sys 664: create /active/adm/users: file already exists nuser 5 len 84 term% mount /srv/fossil /n/f2 term% cat /n/f2/test/text.txt this WAS innocent text term% Of course, with ZFS, the above corruption would be always noticed and sometimes (depending on your vdev setup) even silently fixed. Thanks, Roman.