OpenSearch/docs/java-rest/high-level
Boaz Leskes 033ba725af
Remove support for internal versioning for concurrency control (#38254)
Elasticsearch has long [supported](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html#index-versioning) compare and set (a.k.a optimistic concurrency control) operations using internal document versioning. Sadly that approach is flawed and can sometime do the wrong thing. Here's the relevant excerpt from the resiliency status page:

> When a primary has been partitioned away from the cluster there is a short period of time until it detects this. During that time it will continue indexing writes locally, thereby updating document versions. When it tries to replicate the operation, however, it will discover that it is partitioned away. It won’t acknowledge the write and will wait until the partition is resolved to negotiate with the master on how to proceed. The master will decide to either fail any replicas which failed to index the operations on the primary or tell the primary that it has to step down because a new primary has been chosen in the meantime. Since the old primary has already written documents, clients may already have read from the old primary before it shuts itself down. The version numbers of these reads may not be unique if the new primary has already accepted writes for the same document 

We recently [introduced](https://www.elastic.co/guide/en/elasticsearch/reference/6.x/optimistic-concurrency-control.html) a new sequence number based approach that doesn't suffer from this dirty reads problem. 

This commit removes support for internal versioning as a concurrency control mechanism in favor of the sequence number approach.

Relates to #1078
2019-02-05 20:53:35 +01:00
..
ccr Use `CcrRepository` to init follower index (#35719) 2019-01-29 11:47:29 -07:00
cluster Docs: Cut down on high level rest client copy-and-paste-ness (#34125) 2018-09-28 14:48:11 -04:00
document Remove support for internal versioning for concurrency control (#38254) 2019-02-05 20:53:35 +01:00
graph HLRC GraphClient and associated tests (#32366) 2018-08-21 13:29:18 +01:00
ilm [DOCS] fix HLRC ILM doc misreferenced tag 2018-11-27 14:28:25 -08:00
indices Deprecate types in rollover index API (#38039) 2019-02-04 16:07:45 -05:00
ingest REST high-level client: add simulate pipeline API (#31158) 2018-06-22 09:59:04 +02:00
licensing HLRC: add support for get license basic/trial status API (#33176) 2018-11-13 15:52:59 +01:00
migration Adding ml_settings entry to HLRC and Docs for deprecation_info (#38118) 2019-02-01 12:45:28 -06:00
miscellaneous [Docs] Remove repeating words (#33087) 2018-08-28 13:16:43 +02:00
ml ML: Add upgrade mode docs, hlrc, and fix bug (#37942) 2019-01-30 06:51:11 -06:00
rollup HLRC: Add rollup search (#36334) 2018-12-07 14:39:58 -05:00
script HLRC: Add put stored script support to high-level rest client (#31323) 2018-09-09 13:47:47 +02:00
search Update the scroll example in the docs (#37394) 2019-01-14 13:03:00 +01:00
security Add support for API keys to access Elasticsearch (#38291) 2019-02-05 14:21:57 +11:00
snapshot Add Restore Snapshot High Level REST API 2018-07-24 16:17:09 +02:00
tasks high level REST api: cancel task (#30745) 2018-06-07 14:02:23 -07:00
watcher [DOCS] Various spelling corrections (#37046) 2019-01-07 14:44:12 +01:00
aggs-builders.asciidoc [DOCS] Update APIs grouping and ordering in REST high-level Client docs (#28497) 2018-02-02 17:19:50 +01:00
execution-no-req.asciidoc HLRC: Implement get-user-privileges API (#36292) 2018-12-12 15:12:49 +11:00
execution.asciidoc Add javadocs about expected exceptions to RestHighLevelClient (#36216) 2018-12-05 00:31:52 +01:00
getting-started.asciidoc Update Lucene repo for 7.0.0-alpha2 (#37985) 2019-01-31 09:17:02 +01:00
index.asciidoc Docs: HLRC: refactor bulk, migrate and reindex apis (#35413) 2018-11-16 08:58:13 +01:00
java-builders.asciidoc Docs: Cut down on high level rest client copy-and-paste-ness (#34125) 2018-09-28 14:48:11 -04:00
migration.asciidoc Deprecate types in index API (#36575) 2018-12-18 08:53:49 -05:00
query-builders.asciidoc added docs for `wrapper` query. 2018-03-14 11:51:22 +01:00
supported-apis.asciidoc Add support for API keys to access Elasticsearch (#38291) 2019-02-05 14:21:57 +11:00