Skip to content

Fix and improve slow-list compaction pacing#2177

Draft
Chen-Yifan wants to merge 3 commits intomainfrom
vicky/compact-slow-list
Draft

Fix and improve slow-list compaction pacing#2177
Chen-Yifan wants to merge 3 commits intomainfrom
vicky/compact-slow-list

Conversation

@Chen-Yifan
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates MPT on-disk compaction pacing logic (especially for the slow list) by persisting per-compaction metrics and using them to compute the next compaction stride, with associated logging adjustments.

Changes:

  • Rename/expand disk-growth snapshotting into update_compaction_state() and add slow-list GC efficiency tracking.
  • Rework advance_compact_offsets() to gate fast compaction by chunk thresholds and to scale slow compaction by prior GC efficiency.
  • Restructure compaction stats logging output for fast/slow lists.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
category/mpt/update_aux.cpp Implements new compaction pacing logic (fast/slow) and updates stats logging.
category/mpt/trie.hpp Renames the helper API and adds state needed for slow-list GC efficiency tracking.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread category/mpt/update_aux.cpp
Comment thread category/mpt/update_aux.cpp
Comment thread category/mpt/update_aux.cpp
@Chen-Yifan Chen-Yifan force-pushed the vicky/compact-slow-list branch from cc85dfb to 26ba7ac Compare April 7, 2026 15:03
from fast-list so each list's stats are printed independently
…paction upsert

Move gc_efficiency computation into update_compaction_state() (renamed
from update_disk_growth_data) so it is captured right after the
compaction upsert, before stats are cleared.
…mpact_offsets(),

and scale slow-list compaction by gc_efficiency relative to disk growth

Replace the fixed cap (min of growth+1 and gc_efficiency) with a
formula that scales growth by gc_efficiency / breakeven. Above the
breakeven (4), compaction outruns growth to reduce backlog; below it,
compaction backs off when recirculation is heavy.
@Chen-Yifan Chen-Yifan force-pushed the vicky/compact-slow-list branch from 26ba7ac to 74189bf Compare April 7, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants