Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip after restore unreferenced files deletion for searchable snapshots shards #68821

Merged
merged 2 commits into from
Feb 10, 2021

Conversation

tlrx
Copy link
Member

@tlrx tlrx commented Feb 10, 2021

When a shard is restored from a snapshot there is an after restore step during which files on disk that are not referenced anymore by the restored segments infos file are deleted from disk. The deletion is executed using the Lucene.pruneUnreferencedFiles() method which opens a new IndexWriter and closes it in order to kick off Lucene's internal index files deleter.

This step is not necessary for searchable snapshot shards which use the snapshot store type because such shards report a list of files coming from a shard snapshot which never contain unreferenced files. Skipping this step avoids extra unnecessary work when mounting a searchable snapshot index.

@elasticmachine elasticmachine added the Team:Distributed (Obsolete) Meta label for distributed team (obsolete). Replaced by Distributed Indexing/Coordination. label Feb 10, 2021
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-distributed (Team:Distributed)

Copy link
Contributor

@ywelsch ywelsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tlrx
Copy link
Member Author

tlrx commented Feb 10, 2021

@elasticmachine update branch

@tlrx tlrx merged commit 4a19708 into elastic:master Feb 10, 2021
@tlrx tlrx deleted the skip-prune-unreferenced-files branch February 10, 2021 17:10
@tlrx
Copy link
Member Author

tlrx commented Feb 10, 2021

Thanks Yannick

tlrx added a commit to tlrx/elasticsearch that referenced this pull request Feb 10, 2021
…s shards (elastic#68821)

When a shard is restored from a snapshot there is an after 
restore step during which files on disk that are not referenced 
anymore by the restored segments infos file are deleted from 
disk. The deletion is executed using the 
Lucene.pruneUnreferencedFiles() method which opens a new 
IndexWriter and closes it in order to kick off Lucene's internal 
index files deleter.

This step is not necessary for searchable snapshot shards 
which use the snapshot store type because such shards 
report a list of files coming from a shard snapshot which 
never contain unreferenced files. Skipping this step avoids 
extra unnecessary work when mounting a searchable 
snapshot index.
tlrx added a commit to tlrx/elasticsearch that referenced this pull request Feb 10, 2021
…s shards (elastic#68821)

When a shard is restored from a snapshot there is an after 
restore step during which files on disk that are not referenced 
anymore by the restored segments infos file are deleted from 
disk. The deletion is executed using the 
Lucene.pruneUnreferencedFiles() method which opens a new 
IndexWriter and closes it in order to kick off Lucene's internal 
index files deleter.

This step is not necessary for searchable snapshot shards 
which use the snapshot store type because such shards 
report a list of files coming from a shard snapshot which 
never contain unreferenced files. Skipping this step avoids 
extra unnecessary work when mounting a searchable 
snapshot index.
tlrx added a commit that referenced this pull request Feb 11, 2021
…s shards (#68821) (#68843)

When a shard is restored from a snapshot there is an after 
restore step during which files on disk that are not referenced 
anymore by the restored segments infos file are deleted from 
disk. The deletion is executed using the 
Lucene.pruneUnreferencedFiles() method which opens a new 
IndexWriter and closes it in order to kick off Lucene's internal 
index files deleter.

This step is not necessary for searchable snapshot shards 
which use the snapshot store type because such shards 
report a list of files coming from a shard snapshot which 
never contain unreferenced files. Skipping this step avoids 
extra unnecessary work when mounting a searchable 
snapshot index.
tlrx added a commit that referenced this pull request Feb 11, 2021
…s shards (#68821) (#68845)

When a shard is restored from a snapshot there is an after 
restore step during which files on disk that are not referenced 
anymore by the restored segments infos file are deleted from 
disk. The deletion is executed using the 
Lucene.pruneUnreferencedFiles() method which opens a new 
IndexWriter and closes it in order to kick off Lucene's internal 
index files deleter.

This step is not necessary for searchable snapshot shards 
which use the snapshot store type because such shards 
report a list of files coming from a shard snapshot which 
never contain unreferenced files. Skipping this step avoids 
extra unnecessary work when mounting a searchable 
snapshot index.
tlrx added a commit that referenced this pull request Nov 25, 2021
In #68821 we introduced a condition to skip the pruning of 
unreferenced files after the restore of a snapshot for 
searchable snapshot shards. Sadly I managed to mess 
this up in a refactoring (#75308) few months after.

This commit reintroduces the right conditional which is 
to NOT prune Lucene files for searchable snapshot shards.
tlrx added a commit to tlrx/elasticsearch that referenced this pull request Nov 25, 2021
…c#81047)

In elastic#68821 we introduced a condition to skip the pruning of 
unreferenced files after the restore of a snapshot for 
searchable snapshot shards. Sadly I managed to mess 
this up in a refactoring (elastic#75308) few months after.

This commit reintroduces the right conditional which is 
to NOT prune Lucene files for searchable snapshot shards.
tlrx added a commit to tlrx/elasticsearch that referenced this pull request Nov 25, 2021
…c#81047)

In elastic#68821 we introduced a condition to skip the pruning of 
unreferenced files after the restore of a snapshot for 
searchable snapshot shards. Sadly I managed to mess 
this up in a refactoring (elastic#75308) few months after.

This commit reintroduces the right conditional which is 
to NOT prune Lucene files for searchable snapshot shards.
elasticsearchmachine pushed a commit that referenced this pull request Nov 25, 2021
#81051)

In #68821 we introduced a condition to skip the pruning of 
unreferenced files after the restore of a snapshot for 
searchable snapshot shards. Sadly I managed to mess 
this up in a refactoring (#75308) few months after.

This commit reintroduces the right conditional which is 
to NOT prune Lucene files for searchable snapshot shards.
elasticsearchmachine pushed a commit that referenced this pull request Nov 26, 2021
#81050)

In #68821 we introduced a condition to skip the pruning of 
unreferenced files after the restore of a snapshot for 
searchable snapshot shards. Sadly I managed to mess 
this up in a refactoring (#75308) few months after.

This commit reintroduces the right conditional which is 
to NOT prune Lucene files for searchable snapshot shards.

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs >non-issue Team:Distributed (Obsolete) Meta label for distributed team (obsolete). Replaced by Distributed Indexing/Coordination. v7.11.1 v7.12.0 v8.0.0-alpha1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants