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

Shai Erera commented on LUCENE-4246:
------------------------------------

bq. I ran into the issue today that somebody used a NoMergeScheduler and 
IW#close() was waiting forever

I've been struck by that too!! and therefore I stopped using NoMergeScheduler, 
and I use NoMergePolicy instead.

bq. We recently fixed rollback and given what rollback looks like now I think 
it should actually be called close since this is what it does it flushes all 
stuff and shuts IW down

I think we should separate rollback()/commit() from close(). When you call 
close, you should not silently lose changes -- you have to be explicit about 
losing them (rollback()) or committing them (commit()). And we should 
definitely not break existing apps who call close() relying on committing 
stuff. So if we:

* Detect in close() that you have uncommitted changes or running merges and 
throw an exception
* Let you separately call commit/rollback, waitForMerges/abortMerges and close
* Add a sugar commitAndClose (which waits for merges? or takes a boolean?)

Then I think we can make close() just close and releases resources, including 
the lock, at all costs (basically what was done just recently). We give 
existing apps a very easy migration path -- call commitAndClose(). And we let 
more expert apps to decide what to do about merges and pending changes 
separately from each other and closing the writer.

> Fix IndexWriter.close() to not commit or wait for pending merges
> ----------------------------------------------------------------
>
>                 Key: LUCENE-4246
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4246
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Robert Muir
>            Assignee: Robert Muir
>             Fix For: 4.8
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to