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

Shai Erera commented on LUCENE-2574:
------------------------------------

Found the problem -- the order of the flushes in FSIndexOutput.copyBytes was 
wrong. flush() first emptied FSIndexOutput's buffer, but flushBuffer() filled 
it back. I reversed the calls and the test passes.

> Optimize copies between IndexInput and Output
> ---------------------------------------------
>
>                 Key: LUCENE-2574
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2574
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Store
>            Reporter: Shai Erera
>            Assignee: Shai Erera
>             Fix For: 3.1, 4.0
>
>         Attachments: LUCENE-2574.patch, LUCENE-2574.patch, LUCENE-2574.patch
>
>
> We've created an optimized copy of files from Directory to Directory. We've 
> also optimized copyBytes recently. However, we're missing the opposite side 
> of the copy - from IndexInput to Output. I'd like to mimic the FileChannel 
> API by having copyTo on IndexInput and copyFrom on IndexOutput. That way, 
> both sides can optimize the copy process, depending on the type of the 
> IndexInput/Output that they need to copy to/from.
> FSIndexInput/Output can use FileChannel if the two are FS types. 
> RAMInput/OutputStream can copy to/from the buffers directly, w/o going 
> through intermediate ones. Actually, for RAMIn/Out this might be a big win, 
> because it doesn't care about the type of IndexInput/Output given - it just 
> needs to copy to its buffer directly.
> If we do this, I think we can consolidate all Dir.copy() impls down to one 
> (in Directory), and rely on the In/Out ones to do the optimized copy. Plus, 
> it will enable someone to do optimized copies between In/Out outside the 
> scope of Directory.
> If this somehow turns out to be impossible, or won't make sense, then I'd 
> like to optimize RAMDirectory.copy(Dir, src, dest) to not use an intermediate 
> buffer.

-- 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to