Subject: Re: Summer of code ideas
To: Dieter <netbsd@sopwith.solgatos.com>
From: Bill Stouder-Studenmund <wrstuden@netbsd.org>
List: netbsd-users
Date: 03/19/2007 14:41:03
--xo44VMWPx7vlQ2+2
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Mar 18, 2007 at 08:38:47AM +0100, Dieter wrote:
> > > Soft updates gives higher performance than journaling in most (not al=
l) cases.
> >=20
> > Can you actually demonstrate that this is the case?
>=20
> IIRC these papers do.
>=20
> http://www.usenix.org/publications/library/proceedings/usenix99/mckusick.=
html
> http://www.usenix.org/publications/library/proceedings/usenix2000/general=
/seltzer.html

Do you have any recent references? Specifically NetBSD-based ones?

Soft updates has a wonderful promise, which is a drastic reduction in the=
=20
amount of metadata to write and how we can do it. It is able to delay lots=
=20
of work very vigorously. And it's been, AFAICT, implemented very well by=20
Kirk.

The problem we've run into with NetBSD is that when we actually start
writing data, we tend to explode. The problem is that we aren't good at=20
all at pushing data out the door, so it happens only when we're low on=20
memory. We then have a LOT of stuff to do. And we still have the ordering=
=20
constraints that some operations have to come before others, so that fsck=
=20
will work fine. So we are out of memory, we need to flush something, and=20
it has to wait because something else (or some somethings) have to be=20
flushed first. That's bad.

Journaling doesn't have these issues. You write to the journal in one big=
=20
burst, and your critical part is done. Also, while it would take some=20
coordination, you don't have to have the journal on the same spindle as=20
the rest of the file system. We'd need a good LVM, but it can and has been=
=20
done. In that case, writing the journal will be very fast; you're just=20
overwriting the same 16MB or 256 MB of the disk.

Also, please note that while soft updates have been released, the=20
journaling code for ffs discussed in the Sltzer paper has never been=20
released to the public AFAIK. If it had been, we would have used its code=
=20
base for journaling years ago. :-) The main point is that we don't know if=
=20
there was something that could/should have been done differently. :-)

Take care,

Bill

--xo44VMWPx7vlQ2+2
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (NetBSD)

iD8DBQFF/xF/Wz+3JHUci9cRAmMNAJ9z5jiGA5OFOCblgFBh6OC1OfTZBQCfXOgw
SCtfqTvxzYsq++hLICIqFwU=
=ESiD
-----END PGP SIGNATURE-----

--xo44VMWPx7vlQ2+2--