elasticsearch/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
document Remove support for internal versioning for concurrency control (#38254) 2019-02-05 20:53:35 +01:00
graph
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
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
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
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
tasks
watcher [DOCS] Various spelling corrections (#37046) 2019-01-07 14:44:12 +01:00
aggs-builders.asciidoc
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
migration.asciidoc Deprecate types in index API (#36575) 2018-12-18 08:53:49 -05:00
query-builders.asciidoc
supported-apis.asciidoc Add support for API keys to access Elasticsearch (#38291) 2019-02-05 14:21:57 +11:00