Closed parthosa closed 1 week ago
From offline discussions with @amahussein and @leewyang, moving the detection of runtime (Spark/Photon/Velox) to Scala.
This PR will be refactored afterwards.
@amahussein
Is there another followup PR to change the QualX module to read the app_meta.json to decide whether this app is photon or not?
I am concerned about how we can troubleshoot and validate app_meta.json. the wrapper reads the autotuner's output and copy some of the fields to that file in the upper level. With this PR, we are adding a new field derived from python logic. Later, we will hit a question "Where does each field come from?" (this becomes even more challenging if fields might be overridden by Python wrapper).
app_meta.json
will now be derived from Scala logic, with no Python logic involved.
Issue #251.
This PR introduces support for recommending Photon applications, using a separate strategy for categorizing them:
Additionally, the Small category for Photon applications is different from that of Spark-based applications:
Note
Output
sparkRuntime
inapp_metadata.json
Changes
Enhancements and New Features:
tool_ctxt.py
: Introduced a new methodget_metrics_output_folder
to fetch the metrics output directory.qualification-conf.yaml
: Updated configuration to include new metrics subfolder and execution engine settings. [1] [2] [3] [4]enums.py
: Added a newExecutionEngine
class to represent different execution engines.speedup_category.py
: IntroducedSpeedupStrategy
class and refactored methods to accommodate execution engine-specific speedup strategies. [1] [2] [3] [4]Refactoring and Utility Improvements:
qualification.py
: Added a helper method_read_qualification_metric_file
to read metric files and_assign_execution_engine_to_apps
to assign execution engines to applications.util.py
: Added a utility methodconvert_df_to_dict
to convert DataFrames to dictionaries.Tests:
event_log_processing.feature
: Added new test scenarios to validate the execution engine assignment.e2e_utils.py
andtest_steps.py
: Updated end-to-end test utilities to support new features. [1] [2] [3]Follow Up
1417