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

Deprecate the "Master" nomenclature #285

Closed
4 tasks
Tracked by #2589 ...
tlfeng opened this issue Mar 4, 2022 · 4 comments
Closed
4 tasks
Tracked by #2589 ...

Deprecate the "Master" nomenclature #285

tlfeng opened this issue Mar 4, 2022 · 4 comments
Assignees
Labels
enhancement New request v2.1.0 v2.3.0 'Issues and PRs related to version v2.3.0'

Comments

@tlfeng
Copy link

tlfeng commented Mar 4, 2022

Is your feature request related to a problem? Please describe.
OpenSearch repository is going to replace the terminology "master"with "cluster manager".
issue: opensearch-project/OpenSearch#472, with the plan for its terminology replacement.

Although the existing usages with "master" will be supported in OpenSearch version 2.x until further notice to keep the backwards compatibility, please prepare for the nomenclature change in advance, and replace all the usages with "master" terminology in the code base.

Describe the solution you'd like
Replace the terminology "master" with "cluster manager".

When being compatible with OpenSearch 2.0:

  • Replace "master" in code comment and internal variable name.
  • Deprecate REST API (request parameter) that contains "master" and provide alternative inclusive usage:
    deprecate parameter "master_timeout" and add new parameter "cluster_manager_timeout" in RestExplainAction (updated after the below comment)

When being compatible with OpenSearch 3.0:

  • Replace "master" in the reference to OpenSearch Java API
    (most of the new APIs are available in version 2.2, except AcknowledgedResponse)
    • clusterStateRequest.masterNodeTimeout() -> clusterManagerNodeTimeout()
    • import org.opensearch.action.support.master.MasterNodeRequest -> import org.opensearch.action.support.clustermanager.ClusterManagerNodeRequest
    • import org.opensearch.action.support.master.TransportMasterNodeAction -> import org.opensearch.action.support.clustermanager.TransportClusterManagerNodeAction
    • import org.opensearch.action.support.master.AcknowledgedResponse -> import org.opensearch.action.support.clustermanager.AcknowledgedResponse (will be available in version 3.0)

Describe alternatives you've considered
None.

Additional context

Related issues:

Note about the API request parameter master_timeout:
From my understanding, the parameter master_timeout is used in "Explain Index" API of the plugin, and it's independent with OpenSearch (core), so you could deal with it alone.
I suggest to deprecate the request parameter master_timeout, and add a new request parameter cluster_manager_timeout. Then remove the support of parameter master_timeout in the future.

How OpenSearch deal with the API request parameter master_timeout:
In OpenSearch, the parameter master_timeout is deprecated and will be replaced by parameter cluster_manager_timeout.
The code change was tracked in the issue opensearch-project/OpenSearch#2511

The timeline for deprecating the parameter master_timeout is special in OpenSearch (core):

  1. In version 2.0: new parameter cluster_manager_timeout is added, while no warning for using master_timeout.
  2. In version 3.0: deprecation warning will be emitted if using the parameter master_timeout.
  3. In version 4.0: the support of master_timeout will be removed.

Technically it is fine to keep using the parameter master_timeout when being compatible with OpenSearch 2.0, but deprecation warning will be shown in 3.0 .

@tlfeng tlfeng added the enhancement New request label Mar 4, 2022
@dblock dblock changed the title Change the "Master" nomenclature Deprecate the "Master" nomenclature Apr 18, 2022
@dblock
Copy link
Member

dblock commented Apr 18, 2022

For 2.0, at a minimum please ensure that the plugin is not calling any deprecated APIs in core or another plugin, and confirm below, then remove the 2.0.0 label. If you have time, do the complete deprecation as described in this issue.

@CEHENKLE
Copy link
Member

@opensearch-project/index-management Can you please verify @dblock's question so we can remove the 2.0 label? Thanks

@bowenlan-amzn
Copy link
Member

@tlfeng helps pointing out the master_timeout API parameter usage in our repo.
e.g.

request.paramAsTime("master_timeout", MasterNodeRequest.DEFAULT_MASTER_NODE_TIMEOUT),

And the related issue: opensearch-project/OpenSearch#2928
We will follow the same method as in the above issue to deal with this parameter

@anasalkouz anasalkouz added the v2.3.0 'Issues and PRs related to version v2.3.0' label Aug 25, 2022
@anasalkouz
Copy link
Member

Java APIs completed and released on 2.2 except for AcknowledgedResponse.
@bowenlan-amzn Could you please complete the remaining part from your end? let's target 2.3 for all usages except for AcknowledgedResponse (there will be separate issue to track it).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New request v2.1.0 v2.3.0 'Issues and PRs related to version v2.3.0'
Projects
None yet
Development

No branches or pull requests

5 participants