[Xapian-discuss] Remote databases and daemons

Olly Betts olly at survex.com
Thu Mar 30 14:03:19 BST 2006


On Sun, Mar 26, 2006 at 09:42:17PM -0800, Philip Neustrom wrote:
>  * The remote protocol is usable only as a Database, not as a
> WriteableDatabase -- is this correct?

Yes.  There's no inherent reason, but that's what's implemented at
present.

> So, if I don't want my application to have a copy of the database on
> the same machine I'll need to write an indexer daemon on the remote
> machine and talk to it over TCP if i want to be able to remotely
> index?

Or mount it via NFS or similar perhaps.

>  * The socketserver.cc and the corresponding xapian-tcpsrv looks like
> it blocks, even for reads.

xapian-tcpsrv forks itself for each connection, so the blocking is only
within a single connection.  So it can handle multiple concurrent
sessions without them blocking each other.

> Here's what I'm thinking:  Write a small xapian-daemon server in
> Python that listens on TCP and can index and search.  Because xapian
> can only do one write at a time (last i checked?) the server will keep
> a queue of index requests and apply them in order/thread to avoid
> blocking.  Is this something that's useful or is there a more
> xapiantic way to do this?

That sounds a reasonable approach.

Cheers,
    Olly



More information about the Xapian-discuss mailing list