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

Provide api to upgrade lucene indexes to current version #7884

Closed
rjernst opened this issue Sep 25, 2014 · 0 comments
Closed

Provide api to upgrade lucene indexes to current version #7884

rjernst opened this issue Sep 25, 2014 · 0 comments

Comments

@rjernst
Copy link
Member

rjernst commented Sep 25, 2014

Lucene currently maintains backwards compatibility for reading the current and previous major version's indexes. When ES 2.0 is eventually released with Lucene 5.0, it will no longer support reading 3.x indexes (ES versions prior to 0.90). Today, when updating to a later version of ES, if the indexes used are static (e.g. time series data that is archived), the index format is not upgraded. (Only when there are enough updates to the old segments that trigger a merge to occur would they be rewritten). Therefore a user may be running on the newest version of ES, but still have very old Lucene indexes.

This issue is to add a new _upgrade api, which will force upgrade all index segments that are on versions older than the latest format.

The API would have the ability to trigger and monitor upgrades. For example, to check the how much
of an index is upgraded:

GET /myindex/_upgrade
{
    "myindex" : {
        "size_in_bytes": 12345678,
        "size_to_upgrade_in_bytes": 50000
    }
}

And to begin an upgrade:

POST /myindex/_upgrade
{
    "_shards": {
        "total": 10,
        "successful": 5,
        "failed":0
    }
}
rjernst added a commit to rjernst/elasticsearch that referenced this issue Sep 29, 2014
I'm putting this up now to get early feedback.  I am still working on
testing, but the implementation is basically there.  I've also attempted
to add docs (and modify optimize docs as necessary).

This branch does the following:
* Add the new API at the rest layer, being backed by the optimize API
* with upgrade flag, and segments api to find upgrade status.
* Add `upgrade` flag to optimize API, and deprecate `force` flag (will
* remove in master)

closes elastic#7884
@s1monw s1monw added the blocker label Oct 6, 2014
@rjernst rjernst closed this as completed in c021f22 Oct 7, 2014
rjernst added a commit that referenced this issue Oct 7, 2014
This commit does the following:
* Add the new API at the rest layer, being backed by the optimize API
  with upgrade flag, and segments api to find upgrade status.
* Add `upgrade` flag to optimize API, and deprecate `force` flag (will
  remove in master)
* Add test for both synchronous and async upgrade

closes #7884
closes #7922
rjernst added a commit that referenced this issue Oct 7, 2014
This commit does the following:
* Add the new API at the rest layer, being backed by the optimize API
  with upgrade flag, and segments api to find upgrade status.
* Add `upgrade` flag to optimize API, and deprecate `force` flag (will
  remove in master)
* Add test for both synchronous and async upgrade

closes #7884
closes #7922
karmi added a commit that referenced this issue Oct 9, 2014
* `get_upgrade` => `GET _upgrade`  -- Return the status
* `upgrade`     => `POST _upgrade` -- Perform the operation

Original specification part of c021f22.

Related: #7884, #7922
karmi added a commit that referenced this issue Oct 9, 2014
* `get_upgrade` => `GET _upgrade`  -- Return the status
* `upgrade`     => `POST _upgrade` -- Perform the operation

Original specification part of c021f22.

Related: #7884, #7922
karmi added a commit that referenced this issue Oct 9, 2014
* `get_upgrade` => `GET _upgrade`  -- Return the status
* `upgrade`     => `POST _upgrade` -- Perform the operation

Original specification part of c021f22.

Related: #7884, #7922
mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015
This commit does the following:
* Add the new API at the rest layer, being backed by the optimize API
  with upgrade flag, and segments api to find upgrade status.
* Add `upgrade` flag to optimize API, and deprecate `force` flag (will
  remove in master)
* Add test for both synchronous and async upgrade

closes elastic#7884
closes elastic#7922
mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015
* `get_upgrade` => `GET _upgrade`  -- Return the status
* `upgrade`     => `POST _upgrade` -- Perform the operation

Original specification part of c021f22.

Related: elastic#7884, elastic#7922
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants