Repository navigation
release: 1.7.12 - #56
Merged
Merged
Conversation
Every Spark job's scratch PVC was its built-in profile's size, with no key to raise it: the AML scorer's 50Gi filled at scale 20 in the coverage aggregation's spill and the run went unscored. platform.compute.spark.executor_scratch sizes every job's executors, and bronze_, silver_ and gold_executor_scratch size the stage's job in the run's mode. A set size is exact. One resolver feeds the manifest, the capacity check, config_snapshot.scratch.size_per_job and the perf fingerprint. Setting a size turns scratch on when enabled is unset; an explicit enabled: false with a size is refused by commands that change data. A config that sets no size requests the same PVCs as before.
Version bump and CHANGELOG for the executor scratch size keys.
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.
Summary
1.7.12 adds config keys that set each Spark executor's scratch PVC. Before this, every job's scratch size was fixed by its built-in profile, so a job that outgrew its PVC could only fail. On a scale-20 AML continuous run, the scorer's 50Gi filled during the coverage aggregation's spill ("No space left on device" on both executors, 4 task failures, 3 app attempts) and the run went unscored.
Added (see CHANGELOG)
platform.compute.spark.executor_scratchsizes every Spark job's executors, including the scorer and time-travel reads.bronze_executor_scratch,silver_executor_scratchandgold_executor_scratchsize the stage's job in the run's mode, and win over the global key. A continuous run's bronze-verify preflight takes only the global key, the same rule asbronze_executors.Gi, not scaled by cores, scale or executor count.executor_scratch_size) feeds the manifest, the capacity check and scratch preflight,config_snapshot.scratch.size_per_joband the perf fingerprint, so runs with different scratch sizes do not compare as the same configuration.platform.storage.scratch.enabledon when it is unset. An explicitenabled: falsewith a size is refused by commands that change data, and teardown and read commands note it.Giis refused by commands that change data and dropped with a note by teardown and read commands, the same as the executor memory keys.A config that sets none of these keys requests the same PVCs as before, so results do not move.
Verification
tests/test_executor_scratch.py. The new tests cannot be collected without the change.docs/configuration.mdregenerated).pre-push-hookis SKIP because the throwaway checkout has no local hook.src/lakebench/spark/scripts/changed.