CometShuffleManager treats Spark's own shuffles differently from SortShuffleManager
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 55/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- scala, spark
- Bereich
- backend, performance
Rechercherichtung
Read spark/src/main/scala/org/apache/spark/sql/comet/execution/shuffle/CometShuffleManager.scala and trace how getWriter, unregisterShuffle, and the IndexShuffleBlockResolver share shuffle state. Check the Spark exchange copy behavior described in the issue and compare cleanup with SortShuffleManager. Done when all three reported differences are addressed; the issue gives no named tests or reproduction.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
CometShuffleManager handles shuffles that Comet does not replace differently from Spark's SortShuffleManager. These shuffles are RDD shuffles and Spark exchanges Comet leaves in place. They are not new, but they reach more applications once the plugin sets CometShuffleManager by default on Spark 4.0 and later (#7336). Found in review of that PR.
- Extra row copy in Spark exchanges.
ShuffleExchangeExec.needToCopyObjectsBeforeShufflereturns true for any manager that is not aSortShuffleManager, so Spark's own exchanges copy every row before the shuffle. sortShuffleManager.getWriterentries are never released. For a Spark shuffle dependency,getWriterdelegates to the innersortShuffleManager, which records each map task in its owntaskIdMapsForShuffle.unregisterShuffleclears onlyCometShuffleManager's map and never callssortShuffleManager.unregisterShuffle, so those entries stay on the executor heap until the application ends.- Blocks migrated in during decommissioning are never deleted. The
IndexShuffleBlockResolveris built with a freshConcurrentHashMapinstead oftaskIdMapsForShuffle. The resolver records blocks migrated in during decommissioning in that map, sounregisterShufflenever deletes them.
All three are in spark/src/main/scala/org/apache/spark/sql/comet/execution/shuffle/CometShuffleManager.scala.
Steps to reproduce
Read the code paths above. No reproduction has been run for any of them.
Expected behavior
A shuffle that Comet does not replace behaves as it does under SortShuffleManager: no extra row copy, and no state left behind after unregisterShuffle.
- Vorherrschende Sprache
- Scala
- Sterne
- 1.3k
- Forks
- 414
- Ø Merge
- 3 T. 4 Std.
- Gemergte PRs (30 T.)
- 202
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/datafusion-comet
-
Native MergeRows can panic or produce wrong masks - arrow 59 `and_not` mishandles sliced arraysOffenrequires-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
apache/datafusion-comet#7596 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
requires-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
apache/datafusion-comet#7583 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug priority:medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
apache/datafusion-comet#7559 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
area:writer bug priority:low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/datafusion-comet#7558 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/datafusion-comet#7557 ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in apache/datafusion-comet
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
lichess-org/lila#22466 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
30-minutes algorithm any-language codewars dart easy elixir hackerrank hacktoberfest haskell help wanted interview-prep julia leetcode lua open-source r scala students zig
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
Huerte/algo-solutions-python#226 ·
Maintainer antworten meist innerhalb von 1 Tag
-
? - Needs Triage bug reliability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
NVIDIA/cudf-spark#16810 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
propensive/soundness#2465 ·
Maintainer antworten meist innerhalb von 1 Tag
-
A-api C-bug S-ready-for-human
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
ergoplatform/ergo#2932 ·
Maintainer antworten meist innerhalb von 3 Tagen