Perhaps - one of the things they are supposed to be addressing is
extendability.

nio2 does have FileSystemProvider, which would actually allow you to
create a custom channel !

I have not dug in enough to know much more than that though.

*But*, another really interesting thing is that in Java 7,
FileDescriptors are ref counted ! (though users can't inc/dec).

But, FileInputStream and OutputStream have a new constructor that takes
a FileDescriptor.

So possibly, you could just make one that sits around to keep the
FileDescriptor valid, and get your channel off
FileInputStream/FileOutputStream?

And then if it goes down, make a new one using the FileDescriptor which
was not actually closed because there was a still a ref to it.

Possibly .... ;)

Michael McCandless wrote:
> Does anyone know if nio2 has improved this...?
>
> Mike
>
> On Fri, Jan 29, 2010 at 2:00 PM, Jason Rutherglen
> <jason.rutherg...@gmail.com> wrote:
>   
>> Defaulting NIOFSDir could account for some of the recent speed
>> improvements users have been reporting in Lucene 2.9.  So removing it
>> as a default could reverse those and people could then report Lucene
>> 3.X has slowed...
>>
>> On Thu, Jan 28, 2010 at 5:24 AM, Michael McCandless
>> <luc...@mikemccandless.com> wrote:
>>     
>>> Bummer.
>>>
>>> So the only viable workarounds are 1) don't use Thread.interrupt (nor,
>>> things like Future.cancel, which in turn use Thread.interrupt) with
>>> NIOFSDir, or 2) we fix NIOFSDir to reopen the channel AND the app must
>>> make a deletion policy that keeps a commit alive if any reader is
>>> using it.  Or, 3) don't use NIOFSDir!
>>>
>>> Mike
>>>
>>> On Thu, Jan 28, 2010 at 7:29 AM, Simon Willnauer
>>> <simon.willna...@googlemail.com> wrote:
>>>       
>>>> On Thu, Jan 28, 2010 at 12:43 PM, Michael McCandless
>>>> <luc...@mikemccandless.com> wrote:
>>>>         
>>>>> On Thu, Jan 28, 2010 at 6:38 AM, Uwe Schindler <u...@thetaphi.de> wrote:
>>>>>
>>>>>           
>>>>>> So I checked the code of NIOFSIndexInput, my last comment was not really 
>>>>>> correct:
>>>>>> NIOFSIndexInput extends SimpleFSIndexInput and that opens the RAF. In 
>>>>>> the ctor RAF.getChannel() is called. The RAF keeps open until the file 
>>>>>> is closed (and also the channel).
>>>>>>
>>>>>> So it's really simple to fix in my opinion, just call getChannel() again 
>>>>>> on this exception. Because the RAF should still be open?
>>>>>>             
>>>> Short answer:
>>>>  public final FileChannel getChannel() {
>>>>        synchronized (this) {
>>>>            if (channel == null)
>>>>                channel = FileChannelImpl.open(fd, true, rw, this);
>>>>            return channel;
>>>>        }
>>>>    }
>>>>
>>>> this is not gonna work I tried it before. The RandomAccessFile buffers
>>>> the channel!!
>>>>
>>>> simon
>>>>         
>>>>> I think we need a definitive answer on what happens to the RAF when
>>>>> the FileChannel was closed by Thread.Interrupt.  Simon can you test
>>>>> this?
>>>>>
>>>>> Mike
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>>>>> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>>>>>
>>>>>
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>>>> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>>>>
>>>>
>>>>         
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>>> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>>>
>>>
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>>
>>
>>     
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>
>   


-- 
- Mark

http://www.lucidimagination.com




---------------------------------------------------------------------
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