On Tue, 20 Nov 2007 15:40:58 +1100, "Andrew McNamara" <[EMAIL PROTECTED]> said:
> >> In production releases of ZFS fsync() essentially triggers sync() (fixed 
> >> in 
> >> Solaris Next).  
> [...]
> >Skiplist requires two fsync calls per transaction (single
> >untransactioned actions are also one transaction), and it
> >also locks the entire file for the duration of said 
> >transaction, so you can't have two writes happening at
> >once.  I haven't built Cyrus on our Solaris box, so I don't
> >know if it uses fcntl there, it certainly does on the Linux
> >systems, but it can fall back to flock if fcntl isn't
> >available.
> 
> Note that ext3 effectively does the same thing as ZFS on fsync() -
> because
> the journal layer is block based and does no know which block belongs
> to which file, the entire journal must be applied to the filesystem to
> achieve the expected fsync() symantics (at least, with data=ordered,
> it does).

Lucky we run reiserfs then, I guess...

Bron.
-- 
  Bron Gondwana
  [EMAIL PROTECTED]

----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to