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.

Quellinformationen

Repository
apache/doris-skills
Letzte Quellaktivität
24. Juli 2026 um 23:41
Erkannte Sprache von SKILL.md
Englisch
Sterne
46
Forks
15

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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
Auf GitHub ansehen