[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