La documentation sur les snapshots dit "The index snapshot process is incremental. In the process of making the index snapshot Elasticsearch analyses the list of the index files that are already stored in the repository and copies only files that were created or changed since the last snapshot"
Si je créé un premier snapshot, et disons 7 autres qui seront donc incrémentaux.
J'efface le tout premier snapshot, et ne conserve que le dernier de ces 7 snapshots incrémentaux.
Je créé alors un nouveau snapshot, celui ci sera t'il un snapshot complet, ou alors un snapshot ne contenant que les index qui ne sont pas présent dans celui que j'avais conservé?
Ceci juste pour savoir si dans le cadre d'une rotation, je ne peux garder que les derniers snapshots réalisés, ou alors dois je garder le tout premier ET les derniers réalisés?
Il faut que tu considères que chaque Snapshot est exactement comme un backup full.
Il est donc indépendant des précédents ou suivants.
Pour comprendre la magie, il faut savoir que Lucene produit des segments immuables. Un Snapshot est un pointeur vers un ensemble de segments.
Dans la vie de l'index, des segments vont être ajoutés, supprimés et fusionnés (ajoutés et détruits).
Quand tu effaces un Snapshot, seuls les segments qui ne sont plus référencés sont physiquement effacés. Les autres restent, permettant de restaurer n'importe quel Snapshot.
Avec le temps les vieux Snapshots contiennent des fichiers inutiles (sauf si tu veux restaurer une vieille version de l'index) donc tu as intérêt sans doute à les effacer.
Autrement dit, ça ne marche pas du tout comme les backups traditionnels.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.