[ 
https://issues.apache.org/jira/browse/LUCENE-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712715#action_12712715
 ] 

Uwe Schindler commented on LUCENE-1658:
---------------------------------------

bq. In the end, I'm unsure if it's a good idea to fold anything into FSD at 
all. Too much different stuff in one class becons for spahetti code  I assume 
your initial aim is to provide users with best impl for current platform 
without making them think.

That is my problem with the whole issue, too. For me, the three directory impl 
are too different, to be merged together. Especially if writing is also 
affected.

Using an additional parameter in the ctor specifying the type of directory is 
almost the same like three classes with much cleaner code. The only thing you 
do not get is the automatic directory impl choosing for filesystem dirs. But 
the solution to this are static factories.

bq. What about static factory that chooses between several impls? We had static 
factory before, it stinked because you had to chose impl through system 
property, it pooled directories and we had no public constructors. But now we 
have public constructors  If one needs, he uses constructor directly. If one is 
lazy and wants us to choose for him he uses old API, that simply changes 
semantics a bit.

That would be great. As the separate public constructors and deprecation of 
FSDirectory.open() is new in 2.9, we can change it. Maybe an automatism behind 
open() if the System.property is unset would be good. Advanced users may still 
instantiate the directories using the public ctor.

> Absorb NIOFSDirectory into FSDirectory
> --------------------------------------
>
>                 Key: LUCENE-1658
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1658
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Store
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>            Priority: Minor
>             Fix For: 2.9
>
>         Attachments: LUCENE-1658.patch
>
>
> I think whether one uses java.io.* vs java.nio.* or eventually
> java.nio2.*, or some other means, is an under-the-hood implementation
> detail of FSDirectory and doesn't merit a whole separate class.
> I think FSDirectory should be the core class one uses when one's index
> is in the filesystem.
> So, I'd like to deprecate NIOFSDirectory, absorbing it into
> FSDirectory, and add a setting "useNIO" to FSDirectory.  It should
> default to "true" for non-Windows OSs, because it gives far better
> concurrent performance on all platforms but Windows (due to known Sun
> JRE issue http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6265734).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to