-
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
[BUG] Snapshot forward compatibility for patch version updates #13676
Comments
Lucene doesn't support segments written in higher version to be read by lower version, the reverse is however true i.e. higher versions supports reads of older segments in the minor version.
Yes this is guaranteed to work. We can doubly confirm on an integ test that verifies that behaviour
No not supported, Please refer to the first answer
Snapshot compatibility is well documented |
Thank you so much for your quick and detailed reply, @Bukhtawar . I still have some minor follow-up questions:
Could you please give me a reference or a doc from Lucene confirming this fact?
Could you please show me this integration test? I'm curious to know how it tests this behavior.
By confirming this, I think I need to have downtime to avoid any write operations during the upgrade. |
Hi @peternied and @Bukhtawar, do we have any other updates on this issue?
This is not really clear about what I mentioned about the minor version upgrade. I plan to create a doco update PR to make that compability a little clearer given what it currently says in the compatbility and conflicts section isn't really explicit about older snapshots and the repositories that contain them continue to be compatible with older versions of opensearch |
I just proposed a change in the documentation to clarify more about the snapshots. @peternied @Bukhtawar do you have any further comment on this? And if you have time, please have a eye on some of my follow-up questions. |
Describe the bug
I have an OpenSearch cluster running version 1.3.11, preparing to upgrade to version 1.3.15. The below steps are what I did:
Although semantic versioning should ensure some sort of compatibility, I cannot restore to a new cluster in step 4.
[Question 1] Is this behavior expected? That OpenSearch does not guarantee snapshot backward compatibility between minor versions?
I cannot directly restore from newer version to older version like in step 4 but I can still manage to restore the last old-version snapshot like in step 5 in case of failed upgrade. However, I have a concern:
[Question 2] Are older versions of OpenSearch guaranteed to be able to access a repository that has been modified by a newer version? Do I have to keep testing this behavior in future releases, and do we need another backup plan if it does not work?
I suppose, on a cluster with a single backup repository, Step 5 is the only way we can roll back to an older version in the event of failed upgrade (including unexpected breaking change). If what I’m concerned about in Question 2 is not guaranteed, I plan to use a separate snapshot repository for each minor version, which would be a lot to manage.
Although the strategy like in step 5 works, all changes after the upgrade (at step 2) such as creating, updating and deleting indices will surely be lost.
[Question 3] Is there any way to roll back to the older version that includes writes performed in the new version? Does not have to be an in-place rollback, restoring to a new cluster is fine as well.
If the behavior in step 5 always works,
[Question 4] is it worth documenting in the OpenSearch official documentation?
Related component
Storage:Snapshots
To Reproduce
Expected behavior
As described in the Describe the bug section, I am not sure what I'm concerned about are bugs or not but the following summarized points are my expectations if they are:
Additional Details
Host/Environment (please complete the following information):
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: