Skip to main content

doris-debug-compaction

Use for Doris -235 / too many versions and compaction lag. Error raised in RowsetBuilder::check_tablet_version_count when version_count > max_tablet_version_num (default 2000) or meta serialize size limit.

Informações da origem

Repositório
apache/doris-skills
Última atividade na origem
24 de julho de 2026 às 23:41
Idioma detectado do SKILL.md
inglês
Estrelas
46
Forks
15

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
3 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
doris-debug-compaction
description
Use for Doris -235 / too many versions and compaction lag. Error raised in RowsetBuilder::check_tablet_version_count when version_count > max_tablet_version_num (default 2000) or meta serialize size limit.
version
0.2.0
category
compaction
# Compaction / Versions ## Code `be/src/storage/rowset_builder.cpp`: - `version_count > max_version_config` → `Status::Error<TOO_MANY_VERSION>(...)` - Suggests reduce load frequency or raise `max_tablet_version_num` / `time_series_max_tablet_version_num` in `be.conf` - Near limit triggers cumulative compaction submit Defaults (`config.cpp`): `max_tablet_version_num=2000`, `time_series_max_tablet_version_num=20000`. ## Causes | ID | Cause | Evidence | Fix direction | |----|-------|----------|---------------| | A | Ingest rate > compaction throughput | version_count rising; compaction score growing | Reduce ingest frequency or increase compaction threads | | B | Disk IO bottleneck | `iostat` shows disk util > 90% | Move WAL to separate disk; add compaction disks | | C | max_tablet_version_num too low for workload | -235 on normal ingest rates | Raise limit (temporary), then fix root cause | | D | Single-tablet hotspot | One tablet has 10× versions of peers | Partition / bucket key skew | ## Actions 1. Confirm with `./scripts/doris-debug log-grep be/log --pack versions` 2. Check compaction throughput: `./scripts/doris-debug be-metrics --be http://$BE:8040 --grep compaction` 3. Check disk IO: `iostat -x 1` 4. Slow ingest / enlarge group commit batches 5. Raising `max_tablet_version_num` is a temporary valve — fix ingest vs compaction balance ```bash ./scripts/doris-debug be-metrics --be http://$BE:8040 --grep compaction ``` ## Compaction knobs ```properties # be.conf max_tablet_version_num = 2000 # hard cap, raise only as stopgap time_series_max_tablet_version_num = 20000 # separate cap for time-series tables max_cumulative_compaction_threads = -1 # -1 = auto based on CPU cores compaction_task_num_per_disk = 4 # per-disk concurrent compaction tasks compaction_tablet_size_threshold = 107374182400 # 100GB — above this, skip base compaction ``` ## Source - `be/src/storage/rowset_builder.cpp` — `-235` error - `be/src/common/config.cpp` — all compaction config defaults - `be/src/olap/cumulative_compaction_policy.cpp` — score calculation
Ver no GitHub