Bird
Raised Fist0
Elasticsearchquery~10 mins

Hot-warm-cold architecture in Elasticsearch - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Hot-warm-cold architecture
Data Ingested
Hot Tier: Fast Storage & Indexing
Warm Tier: Slower Storage, Read-Only
Cold Tier: Cheapest Storage, Rare Access
Data Archived or Deleted
Data flows from fast hot storage for new data, to slower warm storage for less active data, then to cold storage for rare access or archiving.
Execution Sample
Elasticsearch
PUT /_ilm/policy/hot-warm-cold-policy
{
  "policy": {
    "phases": {
      "hot": {"actions": {"rollover": {"max_age": "7d"}}},
      "warm": {"min_age": "7d", "actions": {"allocate": {"require": {"data": "warm"}}, "set_priority": {"priority": 50}}},
      "cold": {"min_age": "30d", "actions": {"allocate": {"require": {"data": "cold"}}, "set_priority": {"priority": 0}}},
      "delete": {"min_age": "90d", "actions": {"delete": {}}}
    }
  }
}
Defines an index lifecycle policy moving data through hot, warm, and cold phases based on age.
Execution Table
StepPhaseConditionActionResult
1HotIndex age < 7 daysIndexing on fast nodesData stored on hot tier
2Hot to WarmIndex age >= 7 daysRollover and move to warm nodesData moved to warm tier, read-only
3Warm to ColdIndex age >= 30 daysMove to cold nodesData moved to cold tier, cheaper storage
4ColdIndex age >= 90 daysOptional delete or archiveData archived or deleted
5-No further actionStop lifecycleData lifecycle complete
💡 Data reaches end of lifecycle or is deleted after cold phase
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
Index Age0 days5 days10 days35 days95 days
Data LocationHot TierHot TierWarm TierCold TierArchived/Deleted
Index StateWriteableWriteableRead-onlyRead-onlyDeleted
Key Moments - 3 Insights
Why does data move from hot to warm tier after 7 days?
Because the policy rollover action triggers at 7 days (see execution_table row 2), moving data to warm tier to save cost while keeping it accessible.
Is data still writable in the warm tier?
No, data becomes read-only in warm tier as shown in variable_tracker under Index State after Step 2.
What happens to data after 90 days in cold tier?
It can be archived or deleted as per policy (execution_table row 4), completing the lifecycle.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step does data become read-only?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Check the 'Index State' in variable_tracker after Step 2 and the 'Action' column in execution_table row 2.
According to variable_tracker, what is the data location after 35 days?
AHot Tier
BWarm Tier
CCold Tier
DArchived
💡 Hint
Look at 'Data Location' column after Step 3 in variable_tracker.
If the rollover max_age in hot phase changed to 10 days, when would data move to warm tier?
AAt 7 days
BAt 10 days
CAt 30 days
DImmediately
💡 Hint
Refer to execution_table row 2 where rollover triggers the move based on max_age.
Concept Snapshot
Hot-warm-cold architecture in Elasticsearch:
- Hot tier: fast, writeable storage for new data
- Warm tier: slower, read-only storage for older data
- Cold tier: cheapest storage for rarely accessed data
- Data moves through phases based on age via ILM policies
- Helps balance performance and cost
Full Transcript
The hot-warm-cold architecture in Elasticsearch organizes data storage by age and usage. New data is stored in the hot tier for fast indexing and searching. After a set time (e.g., 7 days), data moves to the warm tier where it becomes read-only and stored on slower, cheaper nodes. Later, after more time (e.g., 30 days), data moves to the cold tier for long-term storage at minimal cost. Finally, data can be archived or deleted after it is no longer needed. This flow is controlled by index lifecycle management policies that automate moving data through these phases based on age. Variables like index age, data location, and index state change step-by-step as data progresses through the lifecycle.

Practice

(1/5)
1. What is the main purpose of the hot-warm-cold architecture in Elasticsearch?
easy
A. To encrypt data at rest and in transit
B. To store recent data on fast nodes and older data on slower, cheaper nodes
C. To backup data to external storage automatically
D. To replicate data across multiple clusters for high availability

Solution

  1. Step 1: Understand the architecture purpose

    The hot-warm-cold architecture is designed to optimize storage costs and performance by placing recent data on fast nodes and older data on slower, cheaper nodes.
  2. Step 2: Match the purpose to options

    To store recent data on fast nodes and older data on slower, cheaper nodes correctly describes this purpose, while other options describe different Elasticsearch features.
  3. Final Answer:

    To store recent data on fast nodes and older data on slower, cheaper nodes -> Option B
  4. Quick Check:

    Hot-warm-cold architecture = store data by age and speed [OK]
Hint: Remember: hot = fast recent, cold = slow old data [OK]
Common Mistakes:
  • Confusing hot-warm-cold with backup or replication
  • Thinking it encrypts data automatically
  • Assuming it manages cluster replication
2. Which Elasticsearch feature is used to automate moving data between hot, warm, and cold phases?
easy
A. Snapshot and Restore
B. Document Level Security
C. Index Lifecycle Management (ILM)
D. Cross-cluster Search

Solution

  1. Step 1: Identify automation for data phase movement

    Index Lifecycle Management (ILM) automates moving indices through hot, warm, and cold phases based on policies.
  2. Step 2: Compare other features

    Snapshot and Restore handles backups, Cross-cluster Search queries multiple clusters, and Document Level Security controls access, so they don't automate data movement.
  3. Final Answer:

    Index Lifecycle Management (ILM) -> Option C
  4. Quick Check:

    ILM automates data phase transitions [OK]
Hint: ILM = automates index phase changes [OK]
Common Mistakes:
  • Choosing Snapshot instead of ILM
  • Confusing security features with lifecycle management
  • Thinking cross-cluster search manages data phases
3. Given this ILM policy snippet, what phase will the index move to after 30 days?
{
  "phases": {
    "hot": {"min_age": "0d"},
    "warm": {"min_age": "7d"},
    "cold": {"min_age": "30d"}
  }
}
medium
A. Cold phase
B. Warm phase
C. Hot phase
D. Delete phase

Solution

  1. Step 1: Analyze min_age values for phases

    The policy defines hot from 0 days, warm from 7 days, and cold from 30 days.
  2. Step 2: Determine phase after 30 days

    After 30 days, the index reaches the cold phase because its min_age is 30 days, which is the threshold for cold.
  3. Final Answer:

    Cold phase -> Option A
  4. Quick Check:

    30 days = cold phase start [OK]
Hint: Check min_age values to find current phase [OK]
Common Mistakes:
  • Choosing warm phase after 30 days
  • Confusing delete phase with cold phase
  • Ignoring min_age thresholds
4. You wrote this ILM policy but your index never moves to the warm phase:
{
  "phases": {
    "hot": {"min_age": "0d"},
    "warm": {"min_age": "10d"}
  }
}
What is the likely problem?
medium
A. The index size is too small to trigger rollover
B. The warm phase min_age is too low
C. The warm phase is missing an allocation action
D. The policy lacks a cold phase

Solution

  1. Step 1: Understand ILM phase transition requirements

    For an index to move from hot to warm, rollover conditions like size or age must be met.
  2. Step 2: Identify missing trigger

    If the index size is too small, rollover won't happen, so the index stays in hot phase and never moves to warm.
  3. Final Answer:

    The index size is too small to trigger rollover -> Option A
  4. Quick Check:

    Small index size blocks rollover and phase move [OK]
Hint: Check rollover conditions to enable phase change [OK]
Common Mistakes:
  • Assuming missing allocation causes no move
  • Thinking warm phase min_age is too low
  • Believing cold phase is required to move to warm
5. You want to optimize storage costs by moving indices older than 60 days to cold nodes and delete indices older than 90 days. Which ILM policy snippet correctly implements this?
hard
A. { "phases": { "hot": {"min_age": "0d"}, "warm": {"min_age": "30d"}, "cold": {"min_age": "90d"}, "delete": {"min_age": "90d"} } }
B. { "phases": { "hot": {"min_age": "0d"}, "warm": {"min_age": "30d"}, "delete": {"min_age": "60d"} } }
C. { "phases": { "hot": {"min_age": "0d"}, "warm": {"min_age": "60d"}, "cold": {"min_age": "90d"}, "delete": {"min_age": "120d"} } }
D. { "phases": { "hot": {"min_age": "0d"}, "cold": {"min_age": "60d"}, "delete": {"min_age": "90d"} } }

Solution

  1. Step 1: Identify required phase ages

    Indices older than 60 days should move to cold, and older than 90 days should be deleted.
  2. Step 2: Match policy phases to requirements

    { "phases": { "hot": {"min_age": "0d"}, "cold": {"min_age": "60d"}, "delete": {"min_age": "90d"} } } has hot at 0d, cold at 60d, and delete at 90d, matching the requirements exactly.
  3. Final Answer:

    { "phases": { "hot": {"min_age": "0d"}, "cold": {"min_age": "60d"}, "delete": {"min_age": "90d"} } } -> Option D
  4. Quick Check:

    60d cold and 90d delete phases match [OK]
Hint: Match min_age exactly to your data lifecycle needs [OK]
Common Mistakes:
  • Adding unnecessary warm phase with wrong min_age
  • Setting delete phase too early
  • Skipping cold phase before delete