-
Notifications
You must be signed in to change notification settings - Fork 24.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
Allow ILM to transition to implicit cached steps #91779
Allow ILM to transition to implicit cached steps #91779
Conversation
ILM tries to honour the cached phase however, some steps are implicit (e.g. injected actions or the terminal policy/phase step) Currently, ILM would throw an exception if the currently cached phase was removed: ``` step [{"phase":"warm","action":"complete","name":"complete"}] for index [index] with policy [my-policy] does not exist ``` ILM would currently also throw an exception if the next step was an implicit one and the phase was removed from the underlying policy e.g. if the index is on the `migrate` step and looking to transition to the `check-migration` step, whilt the `warm` phase doesn't exist in the policy anymore ``` step [{"phase":"warm","action":"migrate","name":"check-migration"}] for index [index] with policy [my-policy] does not exist ``` This fixes these scenarios by enhancing the `PolicyStepsRegistry#parseStepKeysFromPhase` method to compute all the steps in the phase (including all implicit steps)
Pinging @elastic/es-data-management (Team:Data Management) |
Hi @andreidan, I've created a changelog YAML for you. |
Note: there might be a slight performance penalty here due to |
Potentially superseding #91754 (pending discussion on the potential performance penalty) |
@joegallo I think you introduced the |
@dakrone I introduced the The change I propose here eludes the However, we'll continue to disregard implicit steps when parsing the cached phase (as we do today) when it comes to establishing if the current cached phase is safely updateable when updating a policy (ie. @joegallo what do you think ? |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
I've assigned this to myself -- I want to do a little more looking at |
@joegallo do you have an update here? Could we try to benchmark this approach and see if it's feasible? |
@elasticmachine update branch |
The plan is to merge this and give the benchmarks a little while to show an effect, then consult with Armin later this week to determine the path forward (if there's no effect, then that would imply a short meeting 😉). |
ILM tries to honour the cached phase however, some steps are implicit (e.g. injected actions or the terminal policy/phase step) Currently, ILM would throw an exception if the currently cached phase was removed: ``` step [{"phase":"warm","action":"complete","name":"complete"}] for index [index] with policy [my-policy] does not exist ``` ILM would currently also throw an exception if the next step was an implicit one and the phase was removed from the underlying policy e.g. if the index is on the `migrate` step and looking to transition to the `check-migration` step, whilt the `warm` phase doesn't exist in the policy anymore ``` step [{"phase":"warm","action":"migrate","name":"check-migration"}] for index [index] with policy [my-policy] does not exist ``` This fixes these scenarios by enhancing the `PolicyStepsRegistry#parseStepKeysFromPhase` method to compute all the steps in the phase (including all implicit steps) (cherry picked from commit dc726e6) Signed-off-by: Andrei Dan <[email protected]>
) * Allow ILM to transition to implicit cached steps (#91779) ILM tries to honour the cached phase however, some steps are implicit (e.g. injected actions or the terminal policy/phase step) Currently, ILM would throw an exception if the currently cached phase was removed: ``` step [{"phase":"warm","action":"complete","name":"complete"}] for index [index] with policy [my-policy] does not exist ``` ILM would currently also throw an exception if the next step was an implicit one and the phase was removed from the underlying policy e.g. if the index is on the `migrate` step and looking to transition to the `check-migration` step, whilt the `warm` phase doesn't exist in the policy anymore ``` step [{"phase":"warm","action":"migrate","name":"check-migration"}] for index [index] with policy [my-policy] does not exist ``` This fixes these scenarios by enhancing the `PolicyStepsRegistry#parseStepKeysFromPhase` method to compute all the steps in the phase (including all implicit steps) (cherry picked from commit dc726e6) Signed-off-by: Andrei Dan <[email protected]>
ILM tries to honour the cached phase however, some steps are implicit (e.g. injected actions or the terminal policy/phase step) Currently, ILM would throw an exception if the currently cached phase was removed:
ILM would currently also throw an exception if the next step was an implicit one and the phase was removed from the underlying policy e.g. if the index is on the
migrate
step and looking to transition to thecheck-migration
step, whilt thewarm
phase doesn't exist in the policy anymoreThis fixes these scenarios by enhancing the
PolicyStepsRegistry#parseStepKeysFromPhase
method to compute all the steps in the phase (including all implicit steps)Fixes #91749