2.0 upgrade experiences
Jean-Francois Roy
bahamut at macstorm.org
Thu Aug 13 08:49:16 BST 2009
For what it's worth, Mac OS X has a fcntl which will *try really hard*
to flush all disk buffers. I know it's used by a number of databases
(SQLite, PostgreSQL and MySQL) to ensure data integrity on disk.
From the man page:
F_FULLFSYNC Does the same thing as fsync(2) then asks the
drive to flush all buffered data to the permanent
storage device (arg is ignored). This is
currently implemented on HFS, MS-DOS (FAT), and Uni-
versal Disk Format (UDF) file systems. The
operation may take quite a while to complete. Cer-
tain FireWire drives have also been known to
ignore the request to flush their buffered data.
Of course, network drives are an entirely different story.
Jean-François
On Aug 12, 2009, at 17:31, Andrew Cowie wrote:
> On Wed, 2009-08-12 at 07:36 +1000, Robert Collins wrote:
>> You will have content in .bzr/repository/obsolete-packs that will get
>> cleaned up when you make subsequent commits. We do this to deal with
>> various edge cases without requiring fsync/fdatasync operations
>> (which
>> are either a) expensive, or b) [on XFS and MacOSX] don't work).
>
> So I get why you have to do this on broken platforms, but why oh why
> are
> those of us running good operating systems penalized for it?
>
> I must admit I'm a little tired of this & jaded as a result; in the
> projects I run we simply solve this by not supporting broken platforms
> at all. That's not an option for you based on your desire to also
> target
> proprietary platforms like Microsoft and Apple.
>
> But I wish it were possible for bzr to say "hey! You're running Linux
> and [probe] not subject to [known problem] so good for you! We'll now
> switch to dramatically-improved-user-experience mode and delete the
> obsolete files that we only need for broken operating systems' corner
> cases."
>
> Seems like it would make bzr look better.
>
> 2¢
>
> AfC
> Sydney
>
More information about the bazaar
mailing list