OpenSearch/docs/reference
Boaz Leskes 1ca0b5e9e4 Introduce a History UUID as a requirement for ops based recovery (#26577)
The new ops based recovery, introduce as part of  #10708, is based on the assumption that all operations below the global checkpoint known to the replica do not need to be synced with the primary. This is based on the guarantee that all ops below it are available on primary and they are equal. Under normal operations this guarantee holds. Sadly, it can be violated when a primary is restored from an old snapshot. At the point the restore primary can miss operations below the replica's global checkpoint, or even worse may have total different operations at the same spot. This PR introduces the notion of a history uuid to be able to capture the difference with the restored primary (in a follow up PR).

The History UUID is generated by a primary when it is first created and is synced to the replicas which are recovered via a file based recovery. The PR adds a requirement to ops based recovery to make sure that the history uuid of the source and the target are equal. Under normal operations, all shard copies will stay with that history uuid for the rest of the index lifetime and thus this is a noop. However, it gives us a place to guarantee we fall back to file base syncing in special events like a restore from snapshot (to be done as a follow up) and when someone calls the truncate translog command which can go wrong when combined with primary recovery (this is done in this PR).

We considered in the past to use the translog uuid for this function (i.e., sync it across copies) and thus avoid adding an extra identifier. This idea was rejected as it removes the ability to verify that a specific translog really belongs to a specific lucene index. We also feel that having a history uuid will serve us well in the future.
2017-09-14 21:25:02 +03:00
..
aggregations Docs: Remove remaining references to file and native scripts (#26580) 2017-09-11 11:39:29 -07:00
analysis [Docs] Clarify behaviour of Pattern Capture Token Filter during search (#26278) 2017-08-21 14:56:52 +02:00
cat Enforce that responses in docs are valid json (#26249) 2017-08-17 09:02:10 -04:00
cluster [Docs] Convert remaining code snippets in docs (#26422) 2017-08-30 12:11:10 +02:00
docs [Docs] "The the" is a great band, but ... (#26644) 2017-09-14 15:08:20 +02:00
how-to Enable adaptive replica selection by default (#26522) 2017-09-07 09:25:05 -06:00
images Update MSI installer images (#25414) 2017-06-28 09:04:23 +10:00
index-modules [Docs] Convert more doc snippets (#26404) 2017-08-30 09:30:36 +02:00
indices Introduce a History UUID as a requirement for ops based recovery (#26577) 2017-09-14 21:25:02 +03:00
ingest [Docs] "The the" is a great band, but ... (#26644) 2017-09-14 15:08:20 +02:00
mapping [Docs] Correct typo in removal_of_types.asciidoc (#26646) 2017-09-14 15:34:07 +02:00
migration Remove azure deprecated settings (#26099) 2017-09-12 16:51:44 +02:00
modules [Docs] "The the" is a great band, but ... (#26644) 2017-09-14 15:08:20 +02:00
query-dsl [Docs] "The the" is a great band, but ... (#26644) 2017-09-14 15:08:20 +02:00
release-notes Migrate migration docs from 6.0 to 7.0 (#26227) 2017-08-16 13:12:44 -06:00
search Fix percolator highlight sub fetch phase to not highlight query twice (#26622) 2017-09-14 09:31:14 +02:00
setup [Docs] "The the" is a great band, but ... (#26644) 2017-09-14 15:08:20 +02:00
testing Docs: Replace deprecated pluginList with Arrays.asList (#24270) 2017-04-24 13:30:37 +02:00
aggregations.asciidoc Update aggregation.asciidoc (#24042) 2017-04-11 09:02:38 -04:00
analysis.asciidoc Add the ability to set an analyzer on keyword fields. (#21919) 2016-12-30 09:36:10 +01:00
api-conventions.asciidoc Configurable distance limit with the AUTO fuzziness. (#25731) 2017-08-21 11:00:20 +02:00
cat.asciidoc Enforce that responses in docs are valid json (#26249) 2017-08-17 09:02:10 -04:00
cluster.asciidoc [docs] include two cluster doc pages missing from index (#25180) 2017-06-12 12:33:56 -07:00
docs.asciidoc Inclusion of link to Multi Delete (#22619) 2017-01-16 12:58:59 +01:00
getting-started.asciidoc Enforce that responses in docs are valid json (#26249) 2017-08-17 09:02:10 -04:00
glossary.asciidoc Remove usage of multi-types from the docs and added a page explaining type removal (#25543) 2017-07-05 12:30:19 +02:00
gs-index.asciidoc [DOCS] Adding index file for GS "mini book". 2017-07-18 13:44:08 -07:00
how-to.asciidoc Correct grammar in list in how-to docs 2017-01-17 20:57:22 -05:00
index-modules.asciidoc Add soft limit on allowed number of script fields in request (#26598) 2017-09-13 17:22:16 +02:00
index-shared1.asciidoc [DOCS] Split index-shared.asciidoc into multiple smaller files (#25302) 2017-06-19 15:14:53 -07:00
index-shared2.asciidoc [DOCS] Split index-shared.asciidoc into multiple smaller files (#25302) 2017-06-19 15:14:53 -07:00
index-shared3.asciidoc [DOCS] Split index-shared.asciidoc into multiple smaller files (#25302) 2017-06-19 15:14:53 -07:00
index.asciidoc Include shared/attributes.asciidoc from docs master 2017-07-03 18:17:34 +02:00
indices.asciidoc Remove shadow replicas 2017-04-11 11:26:26 -06:00
ingest.asciidoc Renamed all AUTOSENSE snippets to CONSOLE (#18210) 2016-05-09 15:42:23 +02:00
mapping.asciidoc Remove the _all metadata field (#26356) 2017-08-28 17:43:59 +02:00
modules.asciidoc Docs: Cross-cluster search doc wasn't being included 2017-01-18 10:02:51 +01:00
query-dsl.asciidoc Fixed broken xrefs to query-dsl-not-query, which has been removed. 2015-10-20 13:01:37 -07:00
redirects.asciidoc Mark filtered query example as not to be used (#25661) 2017-07-14 11:45:21 +02:00
release-notes.asciidoc Migrate migration docs from 6.0 to 7.0 (#26227) 2017-08-16 13:12:44 -06:00
search.asciidoc Enable adaptive replica selection by default (#26522) 2017-09-07 09:25:05 -06:00
setup.asciidoc Reorganised setup docs into better order 2017-07-21 11:24:46 +02:00
testing.asciidoc [DOCS] Test framework documentation 2013-12-02 18:01:45 +01:00