LARGE single-system Cyrus installs?

Andrew McNamara andrewm at
Mon Nov 19 23:40:58 EST 2007

>> 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

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).

Andrew McNamara, Senior Developer, Object Craft

More information about the Info-cyrus mailing list