-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[Remote Store] API support to restore data from remote store #3145
Comments
We can re-use snapshot restore API to restore data from remote segment and translog store. |
We have decided to go with a separate REST endpoint. |
Is there a discussion somewhere? For snapshots we do |
This issue is where we should be having discussion around the restore API. Following are the points where we decided to not go with snapshot restore API:
Yes, it will be
In remote-store V1, we will have following APIs on remote store:
As part of #3576, we started with restore API. |
I think a little more detail here would be useful, even if not everything is implemented initially. The initial questions I have are: how is a user expected to use the restore API? A remote store-backed index can be created by defining the appropriate index settings, but then how does a user get to the point of restoring that backed-up data to a new index? (i.e. do they delete the index and then later decide to restore it? if so, how do they discover which indexes are restorable from the remote store?). Maybe I'm misunderstanding something, but sketching out the use case / lifecycle of a remote store-backed index would probably be helpful. Specific to the restore API, will it have the same or similar semantics to snapshot restore? I think it's really helpful to write something like that linked documentation (doesn't have to be super polished) defining the behavior and a quick description of all parameters before implementing an API. Does something like that exist? |
Let me add
We will definitely have the documentation for |
|
How does this scenario happen? Also, how does the user discover which indices can be recovered via the remote store? |
Here, data loss is referred to red index with no valid shard copy exists. We also want to make this process automated and this automated recovery can be enabled/disabled at runtime. #3145. I will update the section with these details as well.
As of V1, we will not support a separate API to get all the indices with remote store enabled. But as the setting is a part of index, user can still fetch such indices by fetching index settings. |
Restoring a snapshot to an existing index requires closing or deleting the existing index first, right? Would that be required here as well, or will this API behave differently from snapshot restore? |
That's correct, for this API as well, existing index needs to be closed before restoring. In case of red index, the state changes to closed. |
Thanks for bearing with me! Here's my understanding of this API, and please correct me where I'm wrong:
Assuming that is correct, then will this API have any utility once automated restore is implemented? If a shard copy exists in remote storage and is guaranteed to be fully up-to-date, then under what scenario would it not be the right thing to pull that copy down and restore the shard to health? The question-behind-the-question here is whether introducing a limited restore API here is the right thing to do, versus making automated recovery the behavior when a local copy of the shard is lost. I don't want to expand the scope of V1, but we should be really careful about introducing APIs if they will soon be obsolete. |
|
Describe the solution you'd like
This will provide manual way for use to restore data from remote store for a given index and shard. It could be a new API or the modification of existing snapshot restore API.
The text was updated successfully, but these errors were encountered: