[Xapian-tickets] [Xapian] #426: Backends should write all base files, then flush all base files
Xapian
nobody at xapian.org
Fri Jan 15 03:55:19 GMT 2010
#426: Backends should write all base files, then flush all base files
---------------------------+------------------------------------------------
Reporter: olly | Owner: olly
Type: defect | Status: new
Priority: normal | Milestone: 1.1.4
Component: Backend-Brass | Version: SVN trunk
Severity: normal | Blockedby:
Platform: Mac OS X | Blocking:
---------------------------+------------------------------------------------
OS X supports the F_FULLSYNC ioctl, other systems don't (currently, at
least AFAIK). Xapian uses F_FULLSYNC if it is available to ensure that
changes have actually made it to disk:
http://trac.xapian.org/ticket/288
On other systems, it uses fdatasync() or fsync() which ensure that the
data has at least left the OS, but it may only be in the controller or
drive cache for potentially several seconds more.
Currently Xapian writes the base file for the table, then syncs it, then
does the next table. I bet it would be more efficient to write them all
and then sync them all, especially with F_FULLSYNC (hence I'm marking this
as "Mac OS X").
I'll take a look at doing that. It shouldn't be hard.
--
Ticket URL: <http://trac.xapian.org/ticket/426>
Xapian <http://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list