Skip to content

Add Databricks 14.3 and 17.3 to the AutoTuner shuffle manager map - #2150

Merged
amahussein merged 2 commits into
NVIDIA:devfrom
jtwynne:db-shuffle-manager-map
Sep 11, 2026
Merged

amahussein merged 2 commits into
NVIDIA:devfrom
jtwynne:db-shuffle-manager-map

Conversation

@jtwynne

@jtwynne jtwynne commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Fixes #2144 , Fixes #1678.

Problem

On a Databricks 14.3 or 17.3 event log the profiling AutoTuner commented "Cannot recommend
RAPIDS Shuffle Manager for unsupported Databricks runtime" and advised moving to runtime 13.3,
whose shim the plugin has dropped (NVIDIA/cudf-spark#15276). The Databricks entries of
DatabricksPlatform.supportedShuffleManagerVersionMap stopped at 13.3 while the plugin ships
com.nvidia.spark.rapids.spark350db143.RapidsShuffleManager and
com.nvidia.spark.rapids.spark400db173.RapidsShuffleManager, the two classes the shuffle
documentation page linked from the comment lists for Databricks. Databricks sets
spark.shuffle.manager=SORT explicitly, so the plugin's automatic configuration does not apply
and the tuner's recommendation is the only place in the tools' output where a user is told the
class name.

Fix

The map gains 14.3 -> 350db143 and 17.3 -> 400db173.

Tests

  • The per-entry Databricks test in ProfilingAutoTunerSuite
    (dbPlatform.supportedShuffleManagerVersionMap.foreach) runs the two entries, but it takes
    both the runtime and the expected class from the map, so it pins nothing on its own.
  • Three cases in ProfilingAutoTunerSuiteV2 (the deprecated suite's header sends new AutoTuner
    cases there) pin the values with the expected class written out: "test shuffle manager
    version for databricks 14.3 is 350db143", "test shuffle manager version for databricks 17.3 on
    scala 2.13 is 400db173" (the -scala2.13 runtime suffix, on the Azure platform), and "test
    shuffle manager version for databricks 15.4 without a plugin shim", which expects the
    unsupported-version comment and asserts latestSupportedShuffleManagerInfo is the 17.3 pair.
    All three fail on dev without the two entries.
  • verifyRecommendedShuffleManagerVersion and verifyUnsupportedSparkVersionForShuffleManager
    move from the deprecated suite into ProfilingAutoTunerSuiteBase, unchanged, so both suites
    share them.
  • ProfilingAutoTunerSuite and ProfilingAutoTunerSuiteV2 together: 198 succeeded, 0 failed
    with the change (JDK 17, Scala 2.12); scalastyle clean.
  • Profiling a Databricks 17.3 GPU event log with the change recommends
    spark.shuffle.manager=com.nvidia.spark.rapids.spark400db173.RapidsShuffleManager and no
    longer prints the "Cannot recommend RAPIDS Shuffle Manager for unsupported Databricks
    runtime" comment.

On a Databricks 14.3 or 17.3 event log the profiling AutoTuner commented "Cannot recommend
RAPIDS Shuffle Manager for unsupported Databricks runtime" and advised moving to runtime 13.3,
whose shim the plugin has dropped. The Databricks entries of
`supportedShuffleManagerVersionMap` stopped at 13.3 while the plugin ships
`spark350db143.RapidsShuffleManager` and `spark400db173.RapidsShuffleManager`, and Databricks
sets `spark.shuffle.manager=SORT` explicitly, so the tuner's recommendation is the only place a
user is told the class name.

The map gains `14.3 -> 350db143` and `17.3 -> 400db173`. The 12.2 and 13.3 entries stay so old
event logs keep their recommendation, and the "e.g." runtime in the unsupported-version comment
becomes 17.3 through the existing `maxBy`.

Tests: the per-entry Databricks test in `ProfilingAutoTunerSuite` covers the two entries; a
17.3 case with the `-scala2.13` runtime suffix is added.

Fixes NVIDIA#2144

Signed-off-by: Thomas Wynne <jtwynne3@gmail.com>
@github-actions github-actions Bot added the core_tools Scope the core module (scala) label Sep 9, 2026
@greptile-apps

greptile-apps Bot commented Sep 9, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge; the new mappings are internally consistent with the generated class names and are covered by fixed-value tests.

Summary

  • Maps Databricks 14.3 to the 350db143 shuffle-manager shim.
  • Maps Databricks 17.3 to the 400db173 shuffle-manager shim.
  • Adds fixed-value coverage for both mappings and verifies that 15.4 remains unsupported while 17.3 is presented as the latest supported runtime.
  • Moves shared shuffle-manager test helpers into the common profiling AutoTuner suite base.

Reviews (2) · Last reviewed commit: "Pin the Databricks shuffle manager entri..."

@amahussein amahussein left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Request changes for the missing regression oracle identified inline. The production change itself checks out: I verified both generated shuffle-manager classes in the plugin, both providers default enabled, and the current lookup and maximum select the intended results. The focused suite passed 92/92 locally under Scala 2.12 and 2.13, and GitHub Maven run 34313805053 passed 977/977 in both matching jobs.

Note This PR fully resolves #2144 and #1678.

The two cases added for 14.3 and 17.3 sat in ProfilingAutoTunerSuite, whose header marks it
deprecated and sends new AutoTuner cases to ProfilingAutoTunerSuiteV2. They move there, and a
third case pins 14.3 to 350db143 with the value written out: the map-driven tests take both
the runtime and the expected class from supportedShuffleManagerVersionMap, so a wrong or
missing entry stays green in them, and 17.3 already had its own pin.

verifyRecommendedShuffleManagerVersion and verifyUnsupportedSparkVersionForShuffleManager move
from the deprecated suite into ProfilingAutoTunerSuiteBase, unchanged, so both suites share
them and the map-driven tests keep running.

With the two map entries reverted the three V2 cases fail; with them ProfilingAutoTunerSuite
and ProfilingAutoTunerSuiteV2 pass under JDK 17, 198 succeeded and 0 failed across the two,
scalastyle clean.

Signed-off-by: Thomas Wynne <jtwynne3@gmail.com>
@jtwynne
jtwynne requested a review from amahussein September 11, 2026 14:48

@amahussein amahussein left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@amahussein
amahussein merged commit bcda54d into NVIDIA:dev Sep 11, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core_tools Scope the core module (scala)

Projects

None yet

3 participants