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