Observe the sources on every process at run! start, and put each process's token in its .done - #55
Merged
Merged
Conversation
…ess's token in its .done A point's marker must name the observation of the process that computed it: under pmap that is the worker, whose loaded code need not be the master's (a closure runs the master's body while the named functions it calls resolve on the worker). run! now has the master observe for itself and each worker observe for itself, through DataVault.observe_sources, before any key is dispatched; _run_one_with_retry!, running on that same process, passes that process's token to mark_done!. Tokens are kept per vault identity, so two run!s sharing a process never hand each other's token to a marker. An observation that fails does not stop the run: the event log records observe_failed with the error, and that process's markers read observation=unknown, as they do with observe=false (which also forgets any earlier token rather than reusing it). DataVault floor 0.8.4. Version 0.6.6. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Contributor
|
📚 Docs preview: https://qatlashub.github.io/SweepRunner.jl/previews/PR55/ (updates on each push to this PR) |
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.
Stage C of per-point provenance, SweepRunner side. Needs DataVault 0.8.4 (
observe_sources,mark_done!(…; observation), QAtlasHub/DataVault.jl#54).Why per process. A point's marker must name the observation of the process that computed it. Under
pmapthat is the worker, and its loaded code need not be the master's: a closure runs the master's body while the named functions it calls resolve on the worker (checked).What changes
run!(…; observe = true): before any key is dispatched, the master observes for itself and each worker observes for itself (remotecall_fetch, in parallel). Eventsobserved/observe_failedrecord each process's outcome._run_one_with_retry!— which runs on the computing process — passes that process's token tomark_done!, so every.donecarriesobservation=<token>.(outdir, project, run), so tworun!s sharing a process never hand each other's token to a marker.observation=unknown, and the event log says why.observe = falsedoes the same, and forgets any earlier token rather than reusing it.run_loop!forwardsobserve.Tests —
test/run/test_run_observe.jl(14), locally against DataVault at the merged commit:observe = falsewritesunknowneven when an earlier token was left in the process;unknown,observe_failedis logged;myidis among the workers; one master and two worker observations are recorded.test_run_result_digest.jl,test_run_minimal.jl,test_run_worker_load.jl(45) pass unchanged. DataVault floor 0.8.4; version 0.6.6.CI will not resolve until DataVault 0.8.4 is in General — JuliaRegistries/General#169056 is open.
🤖 Generated with Claude Code