DragonFly BSD
DragonFly kernel List (threaded) for 2005-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Description of the Journaling topology


From: Nikita Danilov <nikita@xxxxxxxxxxxxx>
Date: Wed, 05 Jan 2005 17:45:58 +0300
Cancel-lock: sha1:j75WsG8h9GWsoefEJ4PENR7ot5Y=
Cc: Oliver Fromme <check+i9srai00rsgior1y@xxxxxxxxxx>

Oliver Fromme <check+i9srai00rsgior1y@xxxxxxxxxx> writes:

> Nikita Danilov <nikita@xxxxxxxxxxxxx> wrote:
>  > [...]
>  > Attempts to improve performance of journalling file systems in this
>  > regard, mainly rotate around a cluster of (arguably very old) ideas
>  > called variously "shadows" (in the data-base world), "phase trees"
>  > (Tux2), and "wandering logs" (in reiser4). From little technical
>  > information available on Solaris ZFS, it seems it also uses something
>  > similar.
>
> Solaris ZFS doesn't use journalling or anything similar.
> You can read some interesting information about it here:
>
> http://www.sun.com/software/solaris/10/ds/zfs.jsp
>
> And a few more things here:
>
> http://www.sun.com/2004-0914/feature/
>
> I'd like to quote one of the more interesting paragraphs,
> which presents one of the main ZFS features:
>
> "Solaris ZFS avoids data corruption by keeping the data on
> the disk selfconsistent at all times. It manages data using
> transaction groups that employ copy-on-write technology to
> write data to a new block on disk before changing the
> pointers to the data and committing the write. Because the
> file system is always consistent, time-consuming recovery
> procedures such as fsck are not required if the system is
> shut down in an unclean manner. Copy-on-write also enables
> administrators to take consistent backups or roll data back
> to a known point in time."

That "copy-on-write" is the thing I was alluding to. It looks very much
like phase tree used in Daniel Phillips' Tux2 file system. While not
--technically speaking-- a journalling, this is a technique commonly used
to implement transactions.

Nikita.



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