actiondfs: simplify child parsing, staged mutations, and inode identity - #24
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five focused commits simplify shared REAPI child parsing; staged file/symlink creation; staged unlink/rmdir; backing opens and hexadecimal parsing; and immutable child identity, symlink ownership, and staged-directory ancestry. Removes 149 net lines from
kernel/actiondfs/actiondfs.cand eight bytes per input node.Validation: full ARM64/x86_64 production and instrumented kernel builds,
bazel build/test //..., the standalone timing-parser test, production and instrumentedtools/e2e.sh vm, and two fresh-worker LLVM smokes with identical 2,017 warmup plus 2,106 measured actions. Local LLVM times were distorted by severe host CPU/memory contention: 137.064/151.585 seconds and 166.200/196.180 seconds versus the prior 102.136/108.831 seconds; identical action digests and filesystem counters isolate the slowdown to action process scheduling.All five GitHub Actions checks pass. The 1,998-action Linux comparison measured 275.435 seconds for actiond and 263.800 seconds natively (1.044×); the
mainbaseline was 301.049/298.626 seconds (1.008×). The 1,998-action Windows comparison measured 355.531 seconds for actiond and 362.304 seconds natively (0.981×); themainbaseline was 370.627/392.874 seconds (0.943×). The normalized ratios are approximately 3.6% slower on Linux and 4.0% slower on Windows. The Linux check initially reproduced the intermittent keepalive stall previously observed onmain, then passed when only the failed job was rerun.