Skip to content

[meta] Index Lifecycle Management Plan #29823

Closed
@elasticmachine

Description

@elasticmachine

Tasks

  • Write LifecycleAction for each type of action
    • delete
    • forcemerge EMAIL REDACTED LINK REDACTED)
    • rollover EMAIL REDACTED LINK REDACTED)
    • allocate EMAIL REDACTED LINK REDACTED)
    • shrink EMAIL REDACTED LINK REDACTED)
    • replica EMAIL REDACTED LINK REDACTED)
    • snapshot (will implement snapshotting as a separate solution)
  • Create concept of a lifecycle type which will: EMAIL REDACTED LINK REDACTED)
    • Constrain the available phase names
    • Set the order in which the phases are executed
  • Create concept of Phase types which will:
    • Set the actions that are available in each phase (LINK REDACTED)
    • Set the order in which the actions are executed within each phase
    • Remove shuffled fields exception for phases field in unit tests (IndexLifecycleMetadataTests, LifecyclePolicyTests, PutLifecycleRequestTests)
  • Create the first lifecycle type timeseries, which will allow the following phases (in order): EMAIL REDACTED LINK REDACTED LINK REDACTED LINK REDACTED)
    • Hot - Actions:
      • rollover
    • Warm - Actions:
      • allocate
      • shrink
      • forcemerge
      • replicas
    • Cold - Actions:
      • allocate
      • replicas
    • Delete - Actions:
      • delete
  • Verify Master election re-initialization strategy. Once a Master with an existing in-memory schedule is dropped, the new master needs to be able to re-initialize all the state and relaunch to-be launched tasks. It helps that all time is to be relative to the index.creation.date
  • Add ability to change the poll interval through cluster settings EMAIL REDACTED LINK REDACTED)
  • stop using IndexMetaData.getCreationDate and use a custom setting so that it can be inherited across shrink and other operations EMAIL REDACTED LINK REDACTED)
  • Clean up logging
  • Allow the scheduled job to be added and removed while the node is still running when it is elected and un-elected as master. EMAIL REDACTED LINK REDACTED)
  • Introduce index.lifecycle.phase_time and index.lifecycle.action_time to help track
  • update Shrink Action to properly support self-allocation to specific node from specified attributes

tracking Steps progress

  • PhaseAfterStep
  • InitializationPolicyContextStep
  • TerminalPolicyStep
  • AllocateAction
    • EnoughShardsWaitStep
    • UpdateAllocationSettingsStep
    • AllocationRoutedStep
  • DeleteAction
    • DeleteStep
  • ForceMergeAction
    • UpdateBestCompressionSettingsStep
    • ForceMergeStep (upgrade?)
    • SegmentCountStep
  • ReadOnlyAction
    • ReadOnlyStep
  • ReplicasAction
    • UpdateReplicaSettingsStep
    • EnoughShardsWaitStep
  • RolloverAction
    • RolloverStep
  • ShrinkAction
    • ShrinkStep
    • ShrunkShardsAllocatedStep
    • AliasStep
    • ShrunkenIndexCheckStep

Remaining Tasks

Completed

Blockers to merging into master in priority order from most to least (items are marked in difficulty using *, **, ***)

Blockers to first release in priority order from most to least (items are marked in difficulty using *, **, ***)

Optional (but would be really good to have)

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions