Michael McCandless created LUCENE-7335:
------------------------------------------

             Summary: IndexWriter.setCommitData should be late binding
                 Key: LUCENE-7335
                 URL: https://issues.apache.org/jira/browse/LUCENE-7335
             Project: Lucene - Core
          Issue Type: Bug
            Reporter: Michael McCandless
            Assignee: Michael McCandless
             Fix For: master (7.0), 6.2


Today, {{IndexWriter.setCommitData}} is early-binding: as soon as you call it, 
it clones the provided map and later on when commit is called, it uses that 
clone.

But this makes it hard for some use cases where the app needs to record more 
timely information based on when specifically the commit actually occurs.  
E.g., with LUCENE-7302, it would be helpful to store the max completed sequence 
number in the commit point: that would be a lower bound of operations that were 
after the commit.

I think the most minimal way to do this would be to upgrade the existing method 
to take an {{Iterable<Map.Entry<String,String>}}, and document that it's now 
late binding, i.e. IW will pull an {{Iterator}} from that when it's time to 
write the segments file.

Or we could also make an explicit interface that you pass (seems like 
overkill), or maybe have a listener or something (or you subclass IW) that's 
invoked when the commit is about to write the segments file, but that also 
seems like overkill.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to