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

Support rolling upgrades for OpenSearch plugins, and restart upgrades for OpenSearch Dashboards Plugins 1.0 #12

Closed
9 tasks done
saratvemulapalli opened this issue May 5, 2021 · 11 comments
Assignees
Labels

Comments

@saratvemulapalli
Copy link
Member

saratvemulapalli commented May 5, 2021

Coming from opensearch-project/OpenSearch#671. Plugins are upgraded to OpenSearch, while supporting backward compatibility. We need design and documentation for the following.

  • Renaming Namespaces com.amazon.opendistroforelasticsearch to org.opensearch
  • Renaming Classes, Methods, Variables
  • Renaming Remaining Identifiers (e.g. Opendistro to OpenSearch).
  • Renaming, and Backwards Compatibility for Rest APIs
  • Renaming, and Backwards Compatibility for Settings
  • Renaming, and Backwards Compatibility for Indices
  • Run in a backwards compatible way on top of OpenSearch 1.0 that has joined an ES 7.10.x cluster
  • Run in a backwards compatible way on top of OpenSearch 1.0 that has joined an ODFE 1.13.x cluster
  • Rolling upgrades for the Opendistro version 1.13 of the plugin
@dblock
Copy link
Member

dblock commented May 6, 2021

Settings: #15 (example: opensearch-project/job-scheduler#20).

@dblock dblock added discuss enhancement New feature or request help wanted Extra attention is needed labels May 7, 2021
@dblock
Copy link
Member

dblock commented May 7, 2021

API endpoints discussion in #13

@cliu123
Copy link
Member

cliu123 commented May 10, 2021

Settings: #15 (example: opensearch-project/job-scheduler#20).

@dblock This looks great! Looking forward to a POC for migrating indices.

@hsiang9431-amzn
Copy link

Any idea on indices?

@dblock
Copy link
Member

dblock commented May 10, 2021

I opened #17 to track indices, @saratvemulapalli is looking into that.

@saratvemulapalli
Copy link
Member Author

saratvemulapalli commented May 11, 2021

APIs: Take a look at example opensearch-project/anomaly-detection#35
Let me know if you have any concerns.

@cliu123
Copy link
Member

cliu123 commented May 13, 2021

@dblock @saratvemulapalli
I see that Renaming Namespaces has been checked. Have we already had a decision/POC for it?
How does renaming all class names and namespaces support backward compatibility, e.g Java serialization, Transport Actions? Especially during B/G deployment on the managed service where nodes are upgraded/migrated from opendistro cluster to opensearch cluster, how would opensearch cluster recognize the transport requests that have opendistro namespaces and classes serialized in the header and know how to deserialize them?

@dblock
Copy link
Member

dblock commented May 13, 2021

Renaming was focused on just the naming part. For the items you describe we already have some bugs open like opensearch-project/OpenSearch#669 that @shwetathareja is looking into. If there's a scenario that you know of that is not covered, let's at least open an issue in OpenSearch?

@dblock dblock changed the title Path for plugins to upgrade to OpenSearch, support backwards compatibility Support rolling upgrades for OpenSearch plugins, and restart upgrades for OpenSearch Dashboards Plugins 1.0 May 21, 2021
@shwetathareja
Copy link
Member

shwetathareja commented May 31, 2021

@dblock @saratvemulapalli
I see that Renaming Namespaces has been checked. Have we already had a decision/POC for it?
How does renaming all class names and namespaces support backward compatibility, e.g Java serialization, Transport Actions? Especially during B/G deployment on the managed service where nodes are upgraded/migrated from opendistro cluster to opensearch cluster, how would opensearch cluster recognize the transport requests that have opendistro namespaces and classes serialized in the header and know how to deserialize them?

@cliu123 In general the Java Serialization and Transport action shouldn't fail during upgrade from Elasticsearch to OpenSearch as actual serialization and actions are not dependent on the class/ package names. As long the class attributes data types and their ordering in not changing while reading and write to stream, It should work as is. And as @dblock mentioned the version compatibility logic is already taken as part of opensearch-project/OpenSearch#775

@dblock
Copy link
Member

dblock commented Jun 1, 2021

Are we ready to close this issue? What remains?

@saratvemulapalli
Copy link
Member Author

Are we ready to close this issue? What remains?

We should be able to close this as the follow up is: #39

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants