[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