Skip to content

lab(drf-churn): measure MRU against LRU under focus churn - #1772

Merged
AdaWorldAPI merged 2 commits into
mainfrom
lab/drf-churn-policy-20261025
Oct 25, 2026
Merged

AdaWorldAPI merged 2 commits into
mainfrom
lab/drf-churn-policy-20261025

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

This picks up the open point from W8 (#1770): under a cyclic working set one focus larger than the budget, LRU rebuilds on every load. It adds MRU as a second victim order and measures both in drf-focus-probe.

Change

  • Evict::{Lru, Mru} and FocusManager::evict_to_budget_by(budget, order).
  • evict_to_budget is still LRU, so default behaviour is unchanged.
  • Pinning and the stop rule are shared by both orders.

Measured (3 foci, one eviction pass after every load; each expected count was worked out by hand before the run and all matched)

workload budget LRU builds MRU builds
cyclic ABC ×10 (30 loads) 3 3 3
cyclic ABC ×10 2 30 12
cyclic ABC ×10 1 30 21
phased AAAA BBBB CCCC ×2 (24 loads) 2 6 10

Neither order wins both workloads.

  • Cyclic: MRU keeps two of the three foci resident.
  • Phased: MRU evicts the focus it just loaded, so every load in the third phase rebuilds.

Checks

  • 30 tests pass with --features handoff, on native and on x86-64-v3.
  • clippy -D warnings is clean.
  • Disable run: making Evict::Mru sort like LRU turns both new churn_* tests red.

Open. We have not measured what access pattern thought workloads actually have, so this PR does not change the default. The next candidates are a scan-resistant policy, which adapts between the two orders, and a fallback to direct reads; this PR tries neither.

Board: .claude/board/entries/2026-10-25-drf-churn-policy.md.


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 36de4ce2-960e-4d9f-9fff-42e5bb74d49d
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 25, 2026 08:20
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-25T08:49:00.696018Z 45fbf43 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 25, 2026

Copy link
Copy Markdown

Add Carrot credits or activate Agent usage billing to use Autofix

@AdaWorldAPI

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: 45fbf437f2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

…clic and phased loads

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
@AdaWorldAPI
AdaWorldAPI force-pushed the lab/drf-churn-policy-20261025 branch from 45fbf43 to 020a877 Compare October 25, 2026 08:51
@AdaWorldAPI
AdaWorldAPI merged commit c917727 into main Oct 25, 2026
11 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Oct 26, 2026
…#1802

- PR_ARC_INVENTORY: compact entries for #1772, #1774–#1787, #1794–#1803,
  recorded from merge commits, changed files and each PR's own Status
  line. #1773 and #1793 are board-hygiene-only and get none.
- INTEGRATION_PLANS: one index row for thirteen plans merged without one
  (D-NAM-1..5 + PZL, DT64-1..5 + QB pointer, D-ONNX-INTAKE-0).
- LATEST_STATE: "main after #1803" section.
- d-onnx-relalg-cap-v1: OP-ONNX-2 status cell names #1802's Burn
  onnx-ir vs Tract proposal; still OPEN.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VncKoyG6JkpsoqhqTGTv3f
AdaWorldAPI added a commit that referenced this pull request Oct 26, 2026
board: catch-up #1772–#1803; index 13 unindexed plans; OP-ONNX-2 notes #1802
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