It would appear that NFS Version 2 is not suitable for Lucene. NFS
Version 3 looks like it should work. See http://nfs.sourceforge.net/
#section_a
I will take this opportunity to state again what I've always been
told, and it seems to hold up, using NFS for shared interactively
updated files is always going to be troublesome. They have patched it
over the years to help, but it just wasn't designed for this for the
beginning.
Unix systems never even had file system locks. It was assumed that
shared access to shared data would be accomplished via a shared
server - not by sharing access to the data directly. It is far more
efficient and robust to do things this way.
Modifying a shared Lucene directory via NFS directly is always going
to be error prone.
Why not just implement a server/parallel index solution ?
On Jan 9, 2007, at 12:25 PM, Michael McCandless (JIRA) wrote:
[ https://issues.apache.org/jira/browse/LUCENE-767?
page=com.atlassian.jira.plugin.system.issuetabpanels:comment-
tabpanel#action_12463358 ]
Michael McCandless commented on LUCENE-767:
-------------------------------------------
Carrying over from the java-dev list:
Grant Ingersoll wrote:
Can you explain in more detail on this bug why this makes you
nervous?
Well ... the only specific example I have is NFS (always my favorite
example!).
As I understand it, the NFS client typically uses a separate cache to
hold the "attributes" of the file, including file length. This cache
often has weaker or maybe just "different" guarantees than the "data
cache" that holds the file contents. So basically you can ask what
the file length is and get a wrong (stale) answer. EG see
http://nfs.sourceforge.net, which describes Linux's NFS client
approach. The NFS client on Apple's OS X seems to be even worse!
I think very likely Lucene may not trip up on this specifically since
a reader would only ask for this file's length for the first time once
the file is done being written (ie the commit of segments_N has
occurred) and so hopefully it's not in the attribute cache yet?
I think there may very well be cases of other filesystems where
"checking file length" is risky (that we all just don't know about
(yet!)), which is why I favor using explicit values instead of relying
on file system semantics, whenever possible.
Maybe I'm just too paranoid :)
But for all the places / devices Lucene has gone and will go, relying
on the bare minimum set of IO operations I think will maximize our
overall portability. Every filesystem has its quirks.
maxDoc should be explicitly stored in the index, not derived from
file length
---------------------------------------------------------------------
--------
Key: LUCENE-767
URL: https://issues.apache.org/jira/browse/LUCENE-767
Project: Lucene - Java
Issue Type: Improvement
Affects Versions: 1.9, 2.0.0, 2.0.1, 2.1
Reporter: Michael McCandless
Assigned To: Michael McCandless
Priority: Minor
This is a spinoff of LUCENE-140
In general we should rely on "as little as possible" from the file
system. Right now, maxDoc is derived by checking the file length
of the FieldsReader index file (.fdx) which makes me nervous. I
think we should explicitly store it instead.
Note that there are no known cases where this is actually causing
a problem. There was some speculation in the discussion of
LUCENE-140 that it could be one of the possible, but in digging /
discussion there were no specifically relevant JVM bugs found
(yet!). So this would be a defensive fix at this point.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the
administrators: https://issues.apache.org/jira/secure/
Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/
software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]