Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6b780df
[SPARK-XXXXX][CORE] Concurrently schedule stages connected by a pipel…
jerrypeng Jul 10, 2026
0050318
[SPARK-XXXXX][CORE] Fail fast when a pipelined group cannot fit in cl…
jerrypeng Jul 11, 2026
b2c9d9e
[SPARK-XXXXX][CORE] Admit pipelined groups against free slots (spec S…
jerrypeng Jul 15, 2026
e85b735
[SPARK-XXXXX][CORE] Pipelined group admission: count enqueued demand,…
jerrypeng Jul 17, 2026
c136860
[SPARK-XXXXX][CORE] Defer completion of pipelined-group members until…
jerrypeng Jul 14, 2026
768c398
[SPARK-XXXXX][CORE] Fix pipelined-group admission: skip zombie attemp…
jerrypeng Jul 18, 2026
d3749e2
[SPARK-XXXXX][CORE] Document that isPipelinedGroupMember is consumed …
jerrypeng Jul 18, 2026
b63f9fe
[SPARK-XXXXX][CORE] Fix stale free-slots doc wording: outstanding = r…
jerrypeng Jul 18, 2026
f30bf13
[SPARK-XXXXX][CORE] Restrict pipelined jobs to all-regular-or-all-PG;…
jerrypeng Jul 19, 2026
ede07d2
[SPARK-XXXXX][CORE] Align pipelined deferred-completion naming with C…
jerrypeng Jul 19, 2026
3ea8e80
[SPARK-XXXXX][CORE] Review round 1: add dependentStageMap to the leak…
jerrypeng Jul 19, 2026
dfec9c8
[SPARK-XXXXX][CORE] Pipelined consumer deferral: defer only completio…
jerrypeng Jul 20, 2026
10dd37e
[SPARK-XXXXX][CORE] Fix isPipelinedGroupMember scaladoc: drop stale "…
jerrypeng Jul 20, 2026
e73d413
[SPARK-XXXXX][CORE] Tighten outstandingTasksForOtherWorkInProfile to …
jerrypeng Jul 20, 2026
c9f2bb0
[SPARK-XXXXX][CORE] Clarify pipelined admission vs. barrier: contrast…
jerrypeng Jul 20, 2026
fc10be3
[SPARK-XXXXX][CORE] Don't re-post TaskEnd for a finishOnly replay tha…
jerrypeng Jul 20, 2026
fd39ce3
[SPARK-XXXXX][CORE] Clarify the deferral drop-path comment: inline ac…
jerrypeng Jul 20, 2026
89b29a8
[SPARK-XXXXX][CORE] Remove internal jargon from pipelined-shuffle com…
jerrypeng Jul 21, 2026
43f50d0
[SPARK-XXXXX][CORE] Reject a pipelined job whose member uses a non-de…
jerrypeng Jul 23, 2026
061786f
[SPARK-XXXXX][CORE] Simplify pipelined-consumer deferral: defer the w…
jerrypeng Jul 23, 2026
148c5b3
[SPARK-XXXXX][CORE] Flush a buffered consumer's TaskEnds on job teard…
jerrypeng Jul 23, 2026
97f4152
[SPARK-58263][CORE] Address review nits: correct two scheduler comments
jerrypeng Jul 23, 2026
23a3be1
[SPARK-XXXXX][CORE] Fix scalastyle line-length in the teardown-flush …
jerrypeng Jul 24, 2026
2516736
[SPARK-58263][CORE] Clarify that buffering the whole event defers all…
jerrypeng Jul 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions common/utils/src/main/resources/error/error-conditions.json
Original file line number Diff line number Diff line change
Expand Up @@ -1126,6 +1126,12 @@
],
"sqlState" : "0A000"
},
"CONCURRENT_SCHEDULER_INSUFFICIENT_SLOT" : {
"message" : [
"Cannot run the pipelined stage group: it needs <numTasks> concurrent task slots to run all its stages together, but only <numSlots> are currently free. The stages of a pipelined group must run concurrently, so the cluster must have enough free slots for all of them at once. Provision more executors, or reduce the parallelism of the query."
],
"sqlState" : "53000"
},
"CONCURRENT_STREAM_LOG_UPDATE" : {
"message" : [
"Concurrent update to the log. Multiple streaming jobs detected for <batchId>.",
Expand Down
15 changes: 15 additions & 0 deletions core/src/main/scala/org/apache/spark/internal/config/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2006,6 +2006,21 @@ package object config {
.checkValue(v => v > 0, "The max failures should be a positive value.")
.createWithDefault(40)

private[spark] val PIPELINED_GROUP_SLOT_CHECK_ENABLED =
ConfigBuilder("spark.scheduler.pipelinedGroup.slotCheck.enabled")
.internal()
.doc("When true, before co-scheduling a pipelined-shuffle stage group the DAGScheduler " +
"checks that the group's total task demand fits in the currently free slots of its " +
"resource profile (total capacity minus the outstanding -- running plus enqueued -- " +
"tasks of other work), and fails the job with CONCURRENT_SCHEDULER_INSUFFICIENT_SLOT " +
"rather than co-scheduling a group that cannot fit and deadlocking. Set to false for " +
"deployments that admit capacity out-of-band (e.g. a slot reservation), which then own " +
"admission. Only applies to jobs that use a pipelined shuffle dependency.")
.version("4.3.0")
.withBindingPolicy(ConfigBindingPolicy.NOT_APPLICABLE)
.booleanConf
.createWithDefault(true)

private[spark] val NUM_CANCELLED_JOB_GROUPS_TO_TRACK =
ConfigBuilder("spark.scheduler.numCancelledJobGroupsToTrack")
.doc("The maximum number of tracked job groups that are cancelled with " +
Expand Down
Loading