You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/providers/operations/index_management.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -148,6 +148,24 @@ For each index that exceeds the threshold, the manager applies the configured al
148
148
!!! note
149
149
Tiered allocation only applies to **action** and **delta** indices. Block indices are not affected.
150
150
151
+
## Why Not Use Elasticsearch ILM?
152
+
153
+
Elasticsearch ships with its own [Index Lifecycle Management (ILM)](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html){:target="_blank"} that can handle rollover, shrink, and delete operations. While ILM is a powerful general-purpose tool, Hyperion's built-in lifecycle manager is specifically designed around how Hyperion organizes and queries blockchain data.
154
+
155
+
Here's why Hyperion manages its own index lifecycle:
156
+
157
+
|| Hyperion Lifecycle Manager | Elasticsearch ILM |
158
+
|---|---|---|
159
+
|**Partition awareness**| Understands Hyperion's block-range partitioning scheme. Pruning decisions are based on block numbers, not index age or document count | Operates on generic rollover triggers (size, age, doc count) with no knowledge of block ranges |
160
+
|**Block-based retention**| Retention is defined in blocks (`max_retained_blocks`), which maps directly to chain history depth | Retention is defined in time or size, making it hard to guarantee a specific block range |
161
+
|**Coordinated cleanup**| Prunes action, delta, and block indices together in a single cycle, keeping them aligned | Each index type would need a separate ILM policy, with no coordination between them |
162
+
|**Health API integration**| Pruning status is exposed on `/v2/health` with ETA and retention info. The `first_indexed_block` cache is automatically invalidated after pruning | No integration with Hyperion's health endpoint. Stale `first_indexed_block` values could be served until cache expires |
163
+
|**Tiered allocation by block age**| Can move indices based on how far behind the chain head they are (`max_age_blocks`), which is more meaningful for blockchain data | Only supports time-based age triggers, which don't account for chain halt or catch-up scenarios |
164
+
|**No license requirements**| Works with any Elasticsearch distribution, including the free/open versions | Some ILM features require a paid Elastic license |
165
+
166
+
!!! tip
167
+
If you are already using Elasticsearch ILM for other workloads, you can still use it alongside Hyperion's lifecycle manager — just make sure your ILM policies **do not** target Hyperion's indices (e.g., `<chain>-action-*`, `<chain>-delta-*`, `<chain>-block-*`). Let the Hyperion lifecycle manager handle those.
168
+
151
169
## Configuration Reference
152
170
153
171
All index lifecycle settings are placed under the `settings` section of your chain config file:
@@ -164,3 +182,4 @@ All index lifecycle settings are placed under the `settings` section of your cha
164
182
|`tiered_index_allocation.exclude_node_attributes`|`object`| — | Excluded node attributes for allocation targets |
165
183
166
184
See the [Chain Configuration Reference](../setup/chain.md) for the complete list of settings.
0 commit comments