Re: Linux 2.6.29

Chris Mason
2009-04-01T16:06:22Z

On Wed, 2009-04-01 at 17:41 +0200, Andreas T.Auer wrote:
>
> On 01.04.2009 14:53 Chris Mason wrote:
> > On Wed, 2009-04-01 at 10:55 +1100, Dave Chinner wrote:
> >
> >> If you crash while rsync is running, then the state of the copy
> >> is garbage anyway. You have to restart from scratch and rsync will
> >> detect such failures and resync the file. gnome/kde have no
> >> mechanism for such recovery.
> >>
> > If this were the recovery system they had in mind, then why use rename
> > at all? They could just as easily overwrite the original in place.
> >
>
> It is not a recovery system. The renaming procedure is almost atomic
> with e.g. reiser or ext3 (ordered), but simple overwriting would always
> leave a window between truncating and the complete rewrite of the file.
>

Well, we're considering a future where ext3 and reiser are no longer
used, and applications are responsible for the flushing if they want
renames atomic for data as well as metadata.

In this case, rename without additional flush and truncate are the same.

> > Using rename implies they want to replace the old with a complete new
> > version.
> >
> > There's also the window where you crash after the rsync is done but
> > before all the new data safely makes it into the replacement files.
> >
>
> Sure, but in that case you have only lost some of your _mirrored_ data.
> The original will usually be untouched by this. So after the restart you
> just start the mirroring process again, and hopefully, this time you get
> a perfect copy.
>

If we crash during the rsync, the backup logs will yell. If we crash
just after the rsync, the backup logs won't know. The data could still
be gone.

> In KDE and lots of other apps the _original_ config files (and not any
> copies) are "overlinked" with the new files by the rename. That's the
> difference.

We don't run backup programs because we can use the original as a backup
for the backup ;) From an rsync-for-backup point of view, the backup is
the only copy.

Yes, rsync could easily be fixed. Or maybe people just aren't worried,
its hard to say. Having the ext3 style flush with the rename makes the
system easier to use, and easier to predict how it will react.

rsync was originally brought up when someone asked about applications
that do renames and don't care about atomic data replacement. If the
flushing is a horrible thing, there must be a lot more examples?

-chris