You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Uwe Schindler (JIRA)" <ji...@apache.org> on 2009/05/31 01:40:07 UTC

[jira] Issue Comment Edited: (LUCENE-1658) Absorb NIOFSDirectory into FSDirectory

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

Uwe Schindler edited comment on LUCENE-1658 at 5/30/09 4:40 PM:
----------------------------------------------------------------

This is a revised patch (on current trunk):
- FSDir.open() was removed, the logic was included into FSDir.getDirectory and this un-deprectated: If the system property is missing, the same like in Mikes open() happens: choosing the best impl for platform
- Caching of FSDirs was completely removed
- FSDir.IndexInput/Output (deprected) was removed (suplicate code) and simply replaced by (deprecated) subclasses of SimpleFSDir ones). This is OK for backwards compatibility.
- protected/package-private ctors were removed, getDirectory uses now reflection to find the (File,LockFactory) ctor

Some tests currently fail:
- TestCompoundFile (do not know why)
- TestLockFactory (test is obsolete, execption can only occur on cached dirs)
- Sometimes reopen does not work because already closed (see LUCENE-1453)

TODO:
- Remove the caching code completely (currently comented out)
- Fix 1453, because if somebody uses a self-instantiated FSDir and not the default, the reopened dir would use the default again! So fix (maybe clone of FSDir, or LUCENE-1453 is obsolete without caching?).

This patch also contains an overflow fix in MMapDir for files <2 GB but large. "int*int" should be written as "(long)int*int", if the result maybe large (thanks Earwin!).

      was (Author: thetaphi):
    This is a revised patch (on current trunk):
- FSDir.open() was removed, the logic was included into FSDir.getDirectory and this un-deprectated: If the system property is missing, the same like in Mikes open() happens: choosing the best impl for platform
- Caching of FSDirs was completely removed
- FSDir.IndexInput/Output (deprected) was removed (suplicate code) and simply replaced by (deprecated) subclasses of SimpleFSDir ones). This is OK for backwards compatibility.

Some tests currently fail:
- TestCompoundFile (do not know why)
- TestLockFactory (test is obsolete, execption can only occur on cached dirs)
- Sometimes reopen does not work because already closed (see LUCENE-1453)

TODO:
- Remove the caching code completely (currently comented out)
- Fix 1453, because if somebody uses a self-instantiated FSDir and not the default, the reopened dir would use the default again! So fix (maybe clone of FSDir, or LUCENE-1453 is obsolete without caching?).

This patch also contains an overflow fix in MMapDir for files <2 GB but large. "int*int" should be written as "(long)int*int", if the result maybe large (thanks Earwin!).
  
> 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: Uwe Schindler
>            Priority: Minor
>             Fix For: 2.9
>
>         Attachments: LUCENE-1658-take2.patch, LUCENE-1658.patch, LUCENE-1658.patch, 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org