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

[Meta] Remove mapping types #1940

Closed
66 of 67 tasks
reta opened this issue Jan 19, 2022 · 11 comments
Closed
66 of 67 tasks

[Meta] Remove mapping types #1940

reta opened this issue Jan 19, 2022 · 11 comments
Assignees
Labels
>breaking Identifies a breaking change. campaign Parent issues of OpenSearch release campaigns. enhancement Enhancement or improvement to existing feature or request Indexing & Search Meta Meta issue, not directly linked to a PR v2.0.0 Version 2.0.0

Comments

@reta
Copy link
Collaborator

reta commented Jan 19, 2022

Is your feature request related to a problem? Please describe.
The mapping types have been deprecated in Elasticsearch (starting from 7.0) [1] with breaking changes to the index creation, put mapping, get mapping, put template, get template and get field mappings APIs and on track to be removed in 8.0 [2]. This is the debt Opensearch has inherited and the code related to mapping types support has to be removed.

[1] https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html
[2] elastic/elasticsearch#41059

Describe the solution you'd like
Remove mapping types support from the core and APIs.

Describe alternatives you've considered

  1. Keep the code around (nonetheless it is dead)
  2. Resurrect mapping types support (what is the case for it?)

Additional context
[Removal of mapping types] (https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html)

OpenSearch Engine Subtasks

Plugins:

Clients

Other

@reta reta added enhancement Enhancement or improvement to existing feature or request untriaged labels Jan 19, 2022
@CEHENKLE
Copy link
Member

Thanks @reta This seems to make sense to actually remove in 2.0. What do you think?'

Thanks again,
/C

@anasalkouz
Copy link
Member

@reta
Copy link
Collaborator Author

reta commented Jan 25, 2022

@CEHENKLE +1 to include it into 2.0 roadmap, thank you!

@dreamer-89
Copy link
Member

Looking into it

@nknize
Copy link
Collaborator

nknize commented Feb 1, 2022

We may want to convert this to a meta issue. This is a biggie, especially for bwc testing. If we try to remove everything there's a possibility of it not being completed in time for 2.0. Types is already deprecated so I don't think we need to make it a blocker for 2.0; we should be able to continue during the 2.x line.

@dreamer-89 dreamer-89 added Meta Meta issue, not directly linked to a PR >breaking Identifies a breaking change. labels Feb 1, 2022
@anasalkouz
Copy link
Member

We may want to convert this to a meta issue. This is a biggie, especially for bwc testing. If we try to remove everything there's a possibility of it not being completed in time for 2.0. Types is already deprecated so I don't think we need to make it a blocker for 2.0; we should be able to continue during the 2.x line.

@nknize my understanding that removing mapping types is breaking changes and we should target a major a release. Otherwise, we can target any minor release.

@dreamer-89
Copy link
Member

dreamer-89 commented Feb 8, 2022

Current state:

  1. Remove type references from rest end-points [In-Progress]
  2. Remove internal references of type mapping e.g. Transport layer, builders, serialized classes, terms lookup etc
  3. Update plugin in respective repositories
  4. Client Update - Java/Python/Go
  5. Testing
    a. Automated - covered by UT & ITs in OpenSearch repo
    b. Manual - Verify various upgrades paths from 1.x -> 2.0
    c. Plugins integration - Build OpenSearch main branch with default plugins; following existing build process. Sample build manifest file
    d. Clients - Java/Python/Go

[Edit]
Had a quick sync up with @nknize @andrross @anasalkouz and we decided to first evaluate impact of chanages on rolling upgrades, index templates, bwc testing. Identify which changes can be delivered in 2.0 without delaying the release.

@dreamer-89
Copy link
Member

Proposal for v2.0 release

  • Rest end-points updates
    • Document APIs
      • Ingestion, Update, Delete, Get APIs
      • UpdateByQuery, DeleteByQuery
      • Bulk Request. Request and response
      • Term, multi-term vectors
    • Index APIs
      • Create Index
      • Index mapping (put/get)
      • Field mapping (put/get)
      • Source API
    • Search APIs
      • Search, multi Search, explain
      • Query
        • Terms lookup
        • Type Query - Remove
      • Validate API
    • Query DSL
  • Search templates
  • include_type_name param from APIs
  • Backward compatibility changes necessary for upgrade
  • Update sdk clients (java/python/go/php/rust etc)
  • Update plugins (if needed)
  • Testing
    • Automated.
      • Upgrade/bwc tests. Verify older OS versions are compatible with OS 2.0. Sample upgrades to test:
        • Basic. Test basic features
          • Index. Verify indices created with types (or without) allows ingestion in OS 2.0
          • Templates. Verify templates created on OS 1.x with types, allows new index creation.
          • Searching. Verify older indices created with types, are searchable on OS 2.0 without returning type information.
          • Snapshots. Verify older indices are getting snapshots successfully in OS 2.0. It should be possible to recover older index from snapshot in OS 2.0.
      • Integration Tests.
    • Manual.
      • Verify main builds with different plugin repos
      • Verify advance test cases (TBD)
  • Documentation

@dblock
Copy link
Member

dblock commented Apr 19, 2022

@dreamer-89 What's left for 2.0 here?

@dreamer-89
Copy link
Member

@dreamer-89 What's left for 2.0 here?

@dblock : We have completed all changes for 2.0.

We are targeting remaining pending changes post 2.0 release. Created #2979 to capture remaining changes.

@dblock
Copy link
Member

dblock commented Apr 19, 2022

Let's close this, then.

We have #2357 and #2979 for 2.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>breaking Identifies a breaking change. campaign Parent issues of OpenSearch release campaigns. enhancement Enhancement or improvement to existing feature or request Indexing & Search Meta Meta issue, not directly linked to a PR v2.0.0 Version 2.0.0
Projects
None yet
Development

No branches or pull requests

6 participants