[ 
https://issues.apache.org/jira/browse/SOLR-1924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jan Høydahl closed SOLR-1924.
-----------------------------

    Resolution: Duplicate
    
> Solr's updateRequestHandler does not have a fast way of guaranteeing document 
> delivery
> --------------------------------------------------------------------------------------
>
>                 Key: SOLR-1924
>                 URL: https://issues.apache.org/jira/browse/SOLR-1924
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 1.4
>            Reporter: Karl Wright
>
> It is currently not possible, without performing a commit on every document, 
> to use updateRequestHandler to guarantee delivery into the index of any 
> document.  The reason is that whenever Solr is restarted, some or all 
> documents that have not been committed yet are dropped on the floor, and 
> there is no way for a client of updateRequestHandler to know which ones this 
> happened to.
> I believe it is not even possible to write a middleware-style layer that 
> stores documents and performs periodic commits on its own, because the update 
> request handler never ACKs individual documents on a commit, but merely 
> everything it has seen since the last time Solr bounced.  So you have this 
> potential scenario:
> - middleware layer receives document 1, saves it
> - middleware layer receives document 2, saves it
> Now it's time for the commit, so:
> - middleware layer sends document 1 to updateRequestHandler
> - solr is restarted, dropping all uncommitted documents on the floor
> - middleware layer sends document 2 to updateRequestHandler
> - middleware layer sends COMMIT to updateRequestHandler, but solr adds only 
> document 2 to the index
> - middleware believes incorrectly that it has successfully committed both 
> documents
> An ideal solution would be for Solr to separate the semantics of commit (the 
> index building variety) from the semantics of commit (the 'I got the 
> document' variety).  Perhaps this will involve a persistent document queue 
> that will persist over a Solr restart.
> An alternative mechanism might be for updateRequestHandler to acknowledge 
> specifically committed documents in its response to an explicit commit.  But 
> this would make it difficult or impossible to use autocommit usefully in such 
> situations.  The only other alternative is to require clients that need 
> guaranteed delivery to commit on every document, with a considerable 
> performance penalty.
> This ticket is related to LCF in that LCF is one of the clients that really 
> needs some kind of guaranteed delivery mechanism.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



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

Reply via email to