Vincent Lefevre wrote:
On 2010-08-03 12:56:28 +0200, Stefan Sperling wrote:
On Tue, Aug 03, 2010 at 10:33:28AM +0000, Florian Weimer wrote:
Kernel-level buffers are taken into account.  Application buffers
aren't, the application has to take care of that.  But if the
Subversion fails to do that, it cannot recover from file system
crashes, either, which is arguably a bug in Subversion.
Subversion carefully flushes file buffers after writing revision files.

What do you mean by "flushes file buffers"? A call to fflush()?
Or a call to sync() or fsync() too?

Assuming the filesystem is on a remote machine (say, NFS), the
necessary needs to be done on the client side: the NFS server
cannot take into account the kernel-level buffers of the client.

A filesystem snapshot should present exactly the same scenario as a machine that lost power or crashed for some similar reason at that moment, so the question boils down to whether subversion can recover sensibly from a crash at any point. The fsync's are going to be the critical thing for ordering operations at the disk level, however there is no guarantee how much of the fsync operation might have completed when a crash or snapshot happens.

--
  Les Mikesell
   lesmikes...@gmail.com

Reply via email to