[Xapian-discuss] xapian-tcpsrv php in real fastcgi loop
Olly Betts
olly at survex.com
Sat Mar 20 14:31:37 GMT 2010
On Fri, Mar 19, 2010 at 07:25:35PM +0100, Martin Regner wrote:
> First, this is a connection tried to open with Xapian::remote_open. So i
> think it should'nt create a write lock. Otherwise, i started xapian-tcpsrv
> with -- writable, do i have to start to instances on the same directory, one
> writable and one not?
Yes, you do for Xapian 1.0.x.
Xapian 1.1.0 fixed this:
http://trac.xapian.org/ticket/145
> Second, if i understand the examples right i have to unset the database
> object to get the lock released. But i don't want to close the connection. I
> Just want to release the lock if possible. Is there any convenient way to let
> any lock go if everything is done in a process?
Again, not in 1.0.x. It can be a problem as it is quite easy to inadvertently
keep a reference to the database (either through another Xapian object, or
with some scripting languages because there's a garbage collection phase which
needs to run before the C++ destructor actually gets called).
1.1.0 added a Database::close() method to close a database right away, and
release any lock and close any network connections.
> Third, if there is a lock why is there a exception thrown? Wouldn't it be
> better to wait for the lock a well defined time similar to database locks for
> example?
Sometimes you don't want to wait, but it would be useful to be able to specify
that you want the attempt to block until it can get a write lock. There's
already an open ticket for this:
http://trac.xapian.org/ticket/275
Cheers,
Olly
More information about the Xapian-discuss
mailing list