OpenSearch/docs/reference/indices
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
..
aliases.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
analyze.asciidoc Update experimental labels in the docs (#25727) 2017-07-18 14:06:22 +02:00
clearcache.asciidoc Add CONSOLE to a few snippets in reference docs 2016-09-01 13:08:36 -04:00
create-index.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
delete-index.asciidoc [DOCS] delete index no longer supports specifying aliases 2017-06-19 10:30:05 +02:00
flush.asciidoc Introduce a History UUID as a requirement for ops based recovery (#26577) 2017-09-14 21:25:02 +03:00
forcemerge.asciidoc Add CONSOLE to a few snippets in reference docs 2016-09-01 13:08:36 -04:00
get-field-mapping.asciidoc Consilify get-field-mapping docs (#22936) 2017-02-03 10:04:31 +01:00
get-index.asciidoc Remove comma-separated feature parsing for GetIndicesAction 2017-06-02 14:43:38 -06:00
get-mapping.asciidoc Fix get mappings HEAD requests 2017-06-11 14:58:56 -04:00
get-settings.asciidoc CONSOLEify some more Indices APIs (#24375) 2017-05-01 13:56:39 -04:00
indices-exists.asciidoc Switch indices.exists_type from `{index}/{type}` to `{index}/_mapping/{type}`. #20055 2016-08-19 09:18:24 +02:00
open-close.asciidoc Add CONSOLE to a few snippets in reference docs 2016-09-01 13:08:36 -04:00
put-mapping.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
recovery.asciidoc [Docs] Convert more doc snippets (#26359) 2017-08-28 11:23:09 +02:00
refresh.asciidoc Add CONSOLE to more docs 2016-09-01 17:08:18 -04:00
rollover-index.asciidoc Fixing typo in spelling of rollover (#24146) 2017-04-17 21:31:11 -04:00
segments.asciidoc [Docs] Convert more doc snippets (#26359) 2017-08-28 11:23:09 +02:00
shard-stores.asciidoc [Docs] Convert more doc snippets (#26359) 2017-08-28 11:23:09 +02:00
shrink-index.asciidoc Switch more docs to CONSOLE 2016-09-02 18:22:30 -04:00
stats.asciidoc Switch more docs to CONSOLE 2016-09-02 18:22:30 -04:00
templates.asciidoc Update templates.asciidoc (#26036) 2017-08-08 11:29:11 +02:00
types-exists.asciidoc Switch indices.exists_type from `{index}/{type}` to `{index}/_mapping/{type}`. #20055 2016-08-19 09:18:24 +02:00
update-settings.asciidoc documentation of preserve existing settings 2017-05-08 12:05:01 +02:00