[Xapian-tickets] [Xapian] #284: occasional DatabaseModifiedErrors

Xapian nobody at xapian.org
Fri Apr 10 01:08:25 BST 2009


#284: occasional DatabaseModifiedErrors
---------------------------+------------------------------------------------
 Reporter:  mrks           |        Owner:  olly     
     Type:  defect         |       Status:  assigned 
 Priority:  normal         |    Milestone:  1.1.1    
Component:  Backend-Flint  |      Version:  SVN trunk
 Severity:  normal         |   Resolution:           
 Keywords:                 |    Blockedby:           
 Platform:  Linux          |     Blocking:           
---------------------------+------------------------------------------------

Comment(by olly):

 Well, there's "call reopen when you get !DatabaseModifiedError", which is
 what we recommended doing, but isn't currently possible in Perl in 1.0.x.
 1.1.0 translates C++ to Perl exceptions (at least in the cases which have
 been implemented), and we could add a simple patch to handle at least
 DatabaseModifiedError in 1.0.x.

 Exception handling in C++ is typically rather costly though, so it isn't
 ideal that this is almost an expected path.

 Reader locks would also increase DB bloat by forcing older revisions to be
 kept.  The advantage is that we don't need to if no readers are active.

 Not sure I'm keen to fork a child process for every Database opened
 though.  We could perhaps just have a single child process which holds all
 locks (or all read-locks) of a process, but it's trickier to handle, and
 doesn't actually help in the case of a CGI process like Omega - there's
 still one extra fork over not having read-locks.  I hate fcntl's
 semantics...

-- 
Ticket URL: <http://trac.xapian.org/ticket/284#comment:17>
Xapian <http://xapian.org/>
Xapian



More information about the Xapian-tickets mailing list