Hi everyone, I've read some of documentation about xapian over NFS and I have probably found a bug. I use several readers on a xapian index mounted over NFS. I use a try/catch mechanism to reopen database only on modifications (DatabaseModifiedError exception). My software works great on a local filesystem. But I noticed that there is no DatabaseModifiedError exception raised on NFS. So all readers never reopen the database on modifications. I tried some different configurations. For example set NFS mount with sync, noactime. But nothing changed. I ask myself if it's a good thing to reopen the database for each search query. Thanks for any comment / help. -- Samuel Alba
Hello shad,> I've read some of documentation about xapian over NFS and I have > probably found a bug. > > I use several readers on a xapian index mounted over NFS. I use a > try/catch mechanism to reopen database only on modifications > (DatabaseModifiedError exception). My software works great on a local > filesystem. But I noticed that there is no DatabaseModifiedError > exception raised on NFS. So all readers never reopen the database on > modifications. I tried some different configurations. For example set > NFS mount with sync, noactime. But nothing changed. > > I ask myself if it's a good thing to reopen the database for each search query.I had the same problem, one of the things I found that on linux you should have rpc.statd running on the client machine. Another thing was to batch the writes (I have about 120000 a day), this also helped a lot. Last I switched to running xapian-tcpsrv on the local storage. All the best, -- Miki Tebeka miki at fattoc.com
On Mon, Jun 01, 2009 at 03:45:42PM +0200, shad wrote:> I use several readers on a xapian index mounted over NFS. I use a > try/catch mechanism to reopen database only on modifications > (DatabaseModifiedError exception). My software works great on a local > filesystem. But I noticed that there is no DatabaseModifiedError > exception raised on NFS. So all readers never reopen the database on > modifications.So what happens instead of the reader getting DatabaseModifiedError? Cheers, Olly
Over NFS, readers does not receive any DatabaseModifiedError, so the database is never reopened, and the readers work with an old database revision, in memory I guess. On Sun, Jun 7, 2009 at 2:07 PM, Olly Betts<olly at survex.com> wrote:> On Mon, Jun 01, 2009 at 03:45:42PM +0200, shad wrote: >> I use several readers on a xapian index mounted over NFS. I use a >> try/catch mechanism to reopen database only on modifications >> (DatabaseModifiedError exception). My software works great on a local >> filesystem. But I noticed that there is no DatabaseModifiedError >> exception raised on NFS. So all readers never reopen the database on >> modifications. > > So what happens instead of the reader getting DatabaseModifiedError? > > Cheers, > ? ?Olly >-- Samuel Alba