I have a few questions regarding "index.gc_deletes", and I can't seem to find the answers in Elasticsearch documents.
We have a stream of events to be indexed by Elasticsearch, including "upsert" and "delete" events. We use external versioning to ensure out-of-order events work as intended. However, "delete" events are tricky for us due to "index.gc_deletes", because we want the version of deleted documents to stay forever, so that no documents with a smaller version number can ever be indexed.
- Would "index.gc_deletes" work as intended if we specify a super large number, say 100 years? Would the versioning info of deleted documents persist "forever" if we do this? Is there any upper bound to how large the
index.gc_deletessetting can be?
- How would a large "index.gc_deletes" value affect indexing and query performance? I came across this blog from a long time ago. Are the deleted documents in this blog the same as deleted documents related to "index.gc_deletes"?
- What happens when a node restarts? Will the versioning info of deleted docs be lost?
- Is versioning info of deleted docs persisted with backups, such that they will restore properly?
- Is there any upper bound to how many copies of versioning info of deleted docs we can store?