Skip to content

2.1.0: ship the unbenchmarked read-ahead hint off by default - #2

Merged
ShugokiFable merged 1 commit into
mainfrom
release/2.1.0
Aug 5, 2026
Merged

2.1.0: ship the unbenchmarked read-ahead hint off by default#2
ShugokiFable merged 1 commit into
mainfrom
release/2.1.0

Conversation

@ShugokiFable

Copy link
Copy Markdown
Owner

Why

A real 1.6.1170 session logged:

Stats snapshot: opens=26162 patched=6481 no_buffering_stripped=0 in_scope_safety_gated=0 warm_read=0 MB

no_buffering_stripped=0 means the engine never set FILE_FLAG_NO_BUFFERING on that runtime, so the cache-restoring half of this plugin had nothing to do. That left FILE_FLAG_RANDOM_ACCESS as the only live effect the plugin had - a caching hint that disables the cache manager's read-ahead, where the FILE_FLAG_SEQUENTIAL_SCAN it displaces enlarges it. It has never been benchmarked as a win, and it was being applied to thousands of archive opens per minute.

An unmeasured change at that rate is not a safe default.

What changed

  • Safe now ships bPreferRandomAccessOnArchives=0.
  • Experimental keeps it on so the two profiles can be A/B compared on the same save and route.
  • Minimal is now behaviourally identical to Safe; documented rather than removed so existing installs keep working.
  • Log statistics snapshot states in plain words when the plugin made no difference on your runtime.
  • README, FOMOD descriptions and CHANGELOG updated to match.

What did not change

Hook scope, safety gates, archive eligibility rules, and the DirectStorage backend (still disabled and not shipped).

Validation

  • python tools/validate_rc.py -> VALIDATION PASS
  • Local VS2026 build OK (363,520 bytes); release artifact will be the CI build from tag v2.1.0.

🤖 Generated with Claude Code

A real 1.6.1170 session logged:

  opens=26162 patched=6481 no_buffering_stripped=0

The engine never set FILE_FLAG_NO_BUFFERING on that runtime, so the
cache-restoring half of this plugin had nothing to do. That left
FILE_FLAG_RANDOM_ACCESS as the only live effect - a caching hint that
DISABLES the cache manager's read-ahead, where the FILE_FLAG_SEQUENTIAL_SCAN
it displaces enlarges it. It has never been benchmarked as a win, and it was
being applied to thousands of archive opens per minute.

An unmeasured change at that rate is not a safe default, so Safe now ships
bPreferRandomAccessOnArchives=0. Experimental keeps it on so the two can be
A/B compared on the same save and route.

Minimal is now behaviourally identical to Safe; documented rather than
removed so existing installs keep working.

No change to hook scope, safety gates, archive eligibility, or the
DirectStorage backend (still disabled and not shipped).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ShugokiFable
ShugokiFable merged commit 4755359 into main Aug 5, 2026
2 checks passed
@ShugokiFable
ShugokiFable deleted the release/2.1.0 branch August 5, 2026 23:18
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.

1 participant