[
https://issues.apache.org/jira/browse/SOLR-3178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Per Steffensen updated SOLR-3178:
---------------------------------
Attachment: SOLR-3173_3178_3382_3428_plus.patch
Find attached SOLR-3173_3178_3382_3428_plus.patch
The patch fits on top of trunk revision 1332666 and is ready for commit.
Since last patch (SOLR_3173_3178_3382_plus.patch) I have made the following:
* Implemented test ClassicConsistencyHybridUpdateSemanticsSolrCloudTest
verifying that partial errors are propagated correctly in a cloud (ZK) setup,
when an update document is not sent directly to the Solr instance running the
leader of the slice where the document is to be stored, and the Solr instance
therefore has to forward the document to the leader, and when the leader
forwards to replica. This made me discover the problems discribed in SOLR-3428,
which I had to fix in order to make the test green.
* Implemented tests (in JsonLoaderTest and CSVRequestHandlerTest) verifying
that you can send part references as claimed on
http://wiki.apache.org/solr/Per%20Steffensen/Update%20semantics when you are
sending JSON or CSV requests
* Documents for which a partial error occur on leader will not be forwarded to
replica.
* Partial errors are now catched and collected for the entire request in
DistributedUpdateProcessor, but the actual version-check etc is still performed
in DirectUpdateHandler2 (because that is an per-document-level task)
* Added Apache License 2.0 text to all new files
* Added class-level-JavaDoc to all new classes
* Removed a few unimportant changes
I will be leaving for an extended weekend now, and will not be available again
before wedensday next week. I will probably read and answer comments from time
to time until saturday night, though.
I really really really hope to return to the great news about the patch having
been committed. I believe it is now really ready - well worked through
features, well covered by tests and all existing plus new tests are green.
Great progress, maybe not perfection, but we can shape the last edges later if
we find any. Hope you will take the opportunity to commit before too long, now
that you have a patch based on a fairly new revision, to avoid having to many
conflicts to solve.
Just to avoid any mistakes - the patch covers SORL-3173, SORL-3178, SOLR-3382
and SOLR-3428.
Regards, Per Steffensen
> Versioning - optimistic locking
> -------------------------------
>
> Key: SOLR-3178
> URL: https://issues.apache.org/jira/browse/SOLR-3178
> Project: Solr
> Issue Type: New Feature
> Components: update
> Affects Versions: 3.5
> Environment: All
> Reporter: Per Steffensen
> Assignee: Per Steffensen
> Labels: RDBMS, insert, locking, nosql, optimistic, uniqueKey,
> update, versioning
> Fix For: 4.0
>
> Attachments: SOLR-3173_3178_3382_3428_plus.patch, SOLR-3178.patch,
> SOLR_3173_3178_3382_plus.patch
>
> 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 versioning to be
> used for optimistic locking.
> When my intent (see SOLR-3173) is to update an existing document, I will need
> to provide a version-number equal to "the version number I got when I fetched
> the existing document for update" plus one. If this provided version-number
> does not correspond to "the newest version-number of that document at the
> time of update" plus one, I will get a VersionConflict error. If it does
> correspond the document will be updated with the new one, so that "the newest
> version-number of that document" is NOW one higher than before the update.
> Correct but efficient concurrency handling.
> When my intent (see SOLR-3173) is to insert a new document, the version
> number provided will not be used - instead a version-number 0 will be used.
> According to SOLR-3173 insert will only succeed if a document with the same
> value on uniqueKey-field does not already exist.
> In general when talking about different versions of "the same document", of
> course we need to be able to identify when a document "is the same" - that,
> per definition, is when the values of the uniqueKey-fields are equal.
> The functionality provided by this issue is only really meaningfull when you
> run with "updateLog" activated.
> This issue might be solved more or less at the same time as SOLR-3173, and
> only one single SVN patch might be given to cover both issues.
--
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]