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

Yonik Seeley commented on SOLR-3173:
------------------------------------

Here's an idea: we already have a _version_ field for documents (that can also 
be passed in the URL for other things like deletes), we simply reuse that.  
Positive versions are adds, negative versions are deletes.

If a document comes into the shad leader and already has a _version_, then it's 
considered an optimistic concurrency request... the document should be 
replacing an existing document with exactly that version.  If the _version_ 
passed is negative, then the document should not already exist (all deleted 
documents are considered equal).

No new config needed, and optimistic concurrency can be selected on a 
per-request basis to the same handler.
                
> Database semantics - insert and update
> --------------------------------------
>
>                 Key: SOLR-3173
>                 URL: https://issues.apache.org/jira/browse/SOLR-3173
>             Project: Solr
>          Issue Type: New Feature
>          Components: update
>    Affects Versions: 3.5
>         Environment: All
>            Reporter: Per Steffensen
>            Assignee: Per Steffensen
>              Labels: RDBMS, insert, nosql, uniqueKey, update
>             Fix For: 4.0
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> In order increase the ability of Solr to be used as a NoSql database (lots of 
> concurrent inserts, updates, deletes and queries in the entire lifetime of 
> the index) instead of just a search index (first: everything indexed (in one 
> thread), after: only queries), I would like Solr to support the following 
> features inspired by RDBMSs and other NoSql databases.
> * Given a solr-core with a schema containing a uniqueKey-field "uniqueField" 
> and a document Dold, when trying to INSERT a new document Dnew where 
> Dold.uniqueField is equal to Dnew.uniqueField, then I want a 
> DocumentAlredyExists error. If no such document Dold exists I want Dnew 
> indexed into the solr-core.
> * Given a solr-core with a schema containing a uniqueKey-field "uniqueField" 
> and a document Dold, when trying to UPDATE a document Dnew where 
> Dold.uniqueField is equal to Dnew.uniqueField I want Dold deleted from and 
> Dnew added to the index (just as it is today).If no such document Dold exists 
> I want nothing to happen (Dnew is not added to the index)

--
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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to