This is an automated email from the ASF dual-hosted git repository. wusheng pushed a commit to branch website-docs/10.3.0 in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit 02878f9ba2369b1a84188a6fd9fe9525906c09eb Author: 吴晟 Wu Sheng <[email protected]> AuthorDate: Sun Dec 28 11:10:05 2025 +0800 Fix progressive TTL doc for banyanDB. --- docs/en/banyandb/ttl.md | 62 ++++++++++++++++++++++------------------------ docs/en/changes/changes.md | 1 + 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/docs/en/banyandb/ttl.md b/docs/en/banyandb/ttl.md index 2baab5208c..818eb4136b 100644 --- a/docs/en/banyandb/ttl.md +++ b/docs/en/banyandb/ttl.md @@ -6,47 +6,43 @@ BanyanDB employs a Time-To-Live (TTL) mechanism to automatically delete data old For detailed information, please refer to the [Storage BanyanDB](../setup/backend/storages/banyandb.md) documentation. -## Segment Interval and TTL +## How TTL works in BanyanDB -BanyanDB's data rotation mechanism manages data storage based on **Segment Interval** and **TTL** settings: +BanyanDB uses time-based rotation with two key settings per group (and per stage, if enabled): -- **Segment Interval (`SIDays`)**: Specifies the time interval in days for creating a new data segment. Segments are time-based, facilitating efficient data retention and querying. -- **TTL (`TTLDays`)**: Defines the time-to-live for data within a group, in days. Data that exceeds the TTL will be automatically deleted. +- segmentInterval (days): How often a new segment is created. +- ttl (days): How long data is retained before automatic deletion. -### Best Practices for Setting `SIDays` and `TTLDays` +Some groups support progressive stages: +- hot (default stage, always present) +- warm (optional, used in the default query if present) +- cold (optional) -- **Data Retention Requirements**: Set the TTL based on how long you need to retain your data. For instance, to retain data for 30 days, set the TTL to 30 days. -- **Segment Management**: Avoid generating too many segments, as this increases the overhead for data management and querying. -- **Query Requirements**: Align segment intervals with your query patterns. For example: - - If you frequently query data for the last 30 minutes, set `SIDays` to 1 day. - - For querying data from the last 7 days, set `SIDays` to 7 days. +When warm/cold stages are enabled, data flows hot → warm → cold as it ages, each stage having its own ttl, segmentInterval, and placement (nodeSelector). -## Configuration Guidelines +## Default TTLs by kind (from bydb.yml) -### Record Data +Warm and Cold are disabled by default. The values listed for warm/cold apply if you enable those stages. -For both standard and super datasets: +- ttl: retention (days) in the hot stage +- warm ttl / cold ttl: retention (days) in warm/cold stages -- **Recommended `SIDays`**: `1` - - Most queries are performed within a day. -- **`TTLDays`**: Set according to your data retention needs. +| Kind (group) | ttl | warm ttl | cold ttl | +|------------------------|-----|----------|----------| +| records | 3 | 7 | 30 | +| trace | 3 | 7 | 30 | +| zipkinTrace | 3 | 7 | 30 | +| recordsLog | 3 | 7 | 30 | +| recordsBrowserErrorLog | 3 | 7 | 30 | +| metricsMinute | 7 | 15 | 60 | +| metricsHour | 15 | 30 | 120 | +| metricsDay | 15 | 30 | 120 | +| metadata (index-mode) | 15 | — | — | +| property | — | — | — | -### Metrics Data - -Configure `SIDays` and `TTLDays` based on data retention and query requirements. Recommended settings include: - -| Group | `SIDays` | `TTLDays` | -|------------------------|----------|-----------| -| Minute (`metricsMin`) | 1 | 7 | -| Hour (`metricsHour`) | 5 | 15 | -| Day (`metricsDay`) | 15 | 15 | -| Index (`metadata`) | 15 | 15 | - -**Group Descriptions:** - -- **Minute (`metricsMin`)**: Stores metrics with a 1-minute granularity. Suitable for recent data queries requiring minute-level detail. Consequently, it has shorter `SIDays` and `TTLDays` compared to other groups. -- **Hour (`metricsHour`)**: Stores metrics with a 1-hour granularity. Designed for queries that need hour-level detail over a longer period than minute-level data. -- **Day (`metricsDay`)**: Stores metrics with a 1-day granularity. This group handles the longest segment intervals and TTLs among all granularity groups. -- **Index (`metadata`)**: Stores metrics used solely for indexing without value columns. Since queries often scan all segments in the `index` group, it shares the same `SIDays` and `TTLDays` as the `day` group to optimize performance. This group's `TTL` must be set to the **max** value of all groups. +Notes: +- “—” = not specified in the default bydb.yml. Metadata don't support warm/cold stages. +- Property kind does not have TTL because it uses a different KV-engine mechanism. +- The metadata group should have ttl greater than or equal to the maximum ttl of your metrics groups to ensure index coverage for retained data. For more details on configuring `segmentIntervalDays` and `ttlDays`, refer to the [BanyanDB Rotation](https://skywalking.apache.org/docs/skywalking-banyandb/latest/concept/rotation/) documentation. diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index a23435da41..7d86644800 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -163,6 +163,7 @@ * Enhance the TTL Tab on Setting page. * Fix the snapshot charts in alarm page. * Fix `Fluent Bit` dead links. +* Fix progressive TTL doc for banyanDB. All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/230?closed=1)
