OpenSearch/modules
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
..
aggs-matrix-stats Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
analysis-common Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
ingest-common Mute DateProcessorTests#testJodaPatternLocale (#38265) 2019-02-03 19:52:53 +01:00
ingest-geoip Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
ingest-user-agent Ingest node - user agent, move device to an object (#38115) 2019-01-31 13:54:34 -06:00
lang-expression Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
lang-mustache Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
lang-painless Make sure to reject mappings with type _doc when include_type_name is false. (#38270) 2019-02-05 10:52:32 -08:00
mapper-extras Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
parent-join Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
percolator Default include_type_name to false in the yml test harness. (#38058) 2019-02-01 11:44:13 -08:00
rank-eval Rename no-master-block setting (#38350) 2019-02-05 08:47:56 +00:00
reindex Remove support for internal versioning for concurrency control (#38254) 2019-02-05 20:53:35 +01:00
repository-url Removes typed calls from YAML REST tests (#37611) 2019-01-30 16:32:58 +00:00
transport-netty4 Remove DiscoveryPlugin#getDiscoveryTypes (#38414) 2019-02-05 17:42:24 +00:00
build.gradle Painless: Add spi jar that will be published for extending whitelists (#28302) 2018-01-18 19:16:26 -08:00