You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ya...@apache.org on 2025/06/05 00:56:29 UTC

(spark) branch branch-4.0 updated: [SPARK-52386][CORE][TESTS] Refactor the `HistoryServerSuite` to support regenerating the `expectation.json` files using `SPARK_GENERATE_GOLDEN_FILES=1`

This is an automated email from the ASF dual-hosted git repository.

yangjie01 pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new c8de93fc21db [SPARK-52386][CORE][TESTS] Refactor the `HistoryServerSuite` to support regenerating the `expectation.json` files using `SPARK_GENERATE_GOLDEN_FILES=1`
c8de93fc21db is described below

commit c8de93fc21dbecfb14c708359c5df6c3e06df3a0
Author: yangjie01 <ya...@baidu.com>
AuthorDate: Thu Jun 5 08:47:26 2025 +0800

    [SPARK-52386][CORE][TESTS] Refactor the `HistoryServerSuite` to support regenerating the `expectation.json` files using `SPARK_GENERATE_GOLDEN_FILES=1`
    
    ### What changes were proposed in this pull request?
    This por refactors the `HistoryServerSuite` to support regenerating the `expectation.json` files using `SPARK_GENERATE_GOLDEN_FILES=1`, and refreshes the `expectation.json` files with the new approach:
    
    ```
    SPARK_GENERATE_GOLDEN_FILES=1 build/sbt "core/testOnly org.apache.spark.deploy.history.RocksDBBackendHistoryServerSuite"
    ```
    
    Meanwhile, this or also cleans up some  methods which is no longer needed.
    
    ### Why are the changes needed?
    According to the documentation, the `HistoryServerSuite.main` method was previously used to regenerate golden files. However, there are currently 3 issues:
    
    1. The `HistoryServerSuite.main` method generates the `expectation.json` file in the `target/scala-2.13/test-classes/HistoryServerExpectations` directory, rather than directly refreshing the content in the `core/src/test/resources/HistoryServerExpectations` directory.
    
    2. The previous `expectation.json` files was likely based on data that had undergone re-formatting, rather than directly storing the file generated by `HistoryServerSuite.main` in the `HistoryServerExpectations` directory.
    
    3. The `HistoryServerSuite` generates golden files in a different way compared to other tests, and it does not support the `SPARK_GENERATE_GOLDEN_FILES` parameter, which is somewhat inconvenient.
    
    Therefore, this pr enables support for the `SPARK_GENERATE_GOLDEN_FILES`. When `SPARK_GENERATE_GOLDEN_FILES=1`, it directly refreshes the content in the `core/src/test/resources/HistoryServerExpectations` directory.
    
    ### Does this PR introduce _any_ user-facing change?
    No
    
    ### How was this patch tested?
    - Pass GitHub Actions
    
    ### Was this patch authored or co-authored using generative AI tooling?
    No
    
    Closes #51072 from LuciferYang/refactor-HistoryServerSuite.
    
    Lead-authored-by: yangjie01 <ya...@baidu.com>
    Co-authored-by: YangJie <ya...@baidu.com>
    Signed-off-by: yangjie01 <ya...@baidu.com>
    (cherry picked from commit 0804b8af296574a2f23dafb84ae27b5de5ce5361)
    Signed-off-by: yangjie01 <ya...@baidu.com>
---
 .../app_environment_expectation.json               | 290 +---------
 .../application_list_json_expectation.json         |  72 +--
 .../complete_stage_list_json_expectation.json      |  54 +-
 .../completed_app_list_json_expectation.json       |  72 +--
 .../excludeOnFailure_for_stage_expectation.json    | 338 +++++------
 ...xcludeOnFailure_node_for_stage_expectation.json | 400 ++++++-------
 ...ist_with_executor_metrics_json_expectation.json |   4 +-
 .../executor_memory_usage_expectation.json         |  12 +-
 ...executor_node_excludeOnFailure_expectation.json |  12 +-
 ...e_excludeOnFailure_unexcluding_expectation.json |  12 +-
 .../executor_resource_information_expectation.json |   4 +-
 .../limit_app_list_json_expectation.json           |  14 +-
 .../maxDate2_app_list_json_expectation.json        |   4 +-
 .../maxDate_app_list_json_expectation.json         |   8 +-
 .../maxEndDate_app_list_json_expectation.json      |  28 +-
 ...e_and_maxEndDate_app_list_json_expectation.json |  16 +-
 .../minDate_app_list_json_expectation.json         |  64 +--
 ...e_and_maxEndDate_app_list_json_expectation.json |  18 +-
 .../minEndDate_app_list_json_expectation.json      |  52 +-
 .../multiple_resource_profiles_expectation.json    |  14 +-
 .../one_app_json_expectation.json                  |   4 +-
 .../one_app_multi_attempt_json_expectation.json    |   8 +-
 ..._json_details_with_failed_task_expectation.json |  12 +-
 .../one_stage_attempt_json_expectation.json        | 114 ++--
 .../one_stage_json_expectation.json                | 114 ++--
 .../one_stage_json_with_details_expectation.json   |  54 +-
 ...age_list_with_accumulable_json_expectation.json |  12 +-
 .../stage_list_with_peak_metrics_expectation.json  |   2 +-
 .../stage_task_list_expectation.json               | 201 ++++---
 ...from_multi_attempt_app_json_1__expectation.json |  80 +--
 ...from_multi_attempt_app_json_2__expectation.json |  80 +--
 ...e_task_list_w__offset___length_expectation.json | 624 ++++++++++-----------
 .../stage_task_list_w__sortBy_expectation.json     | 282 +++++-----
 ...__sortBy_short_names___runtime_expectation.json | 200 +++----
 ...w__sortBy_short_names__runtime_expectation.json | 200 +++----
 ...st_w__status___offset___length_expectation.json |  20 +-
 ...___sortBy_short_names__runtime_expectation.json | 280 ++++-----
 .../stage_task_list_w__status_expectation.json     | 128 ++---
 ...age_task_list_with_partitionId_expectation.json |  80 +--
 ...sk_summary_w__custom_quantiles_expectation.json |   8 +-
 ...ge_task_summary_w_shuffle_read_expectation.json |   2 +-
 ...e_task_summary_w_shuffle_write_expectation.json |   8 +-
 .../stage_with_accumulable_json_expectation.json   | 142 ++---
 .../stage_with_peak_metrics_expectation.json       | 336 +++++------
 ...stage_with_speculation_summary_expectation.json | 104 ++--
 .../stage_with_summaries_expectation.json          | 334 +++++------
 .../spark/deploy/history/HistoryServerSuite.scala  | 102 ++--
 47 files changed, 2379 insertions(+), 2640 deletions(-)

diff --git a/core/src/test/resources/HistoryServerExpectations/app_environment_expectation.json b/core/src/test/resources/HistoryServerExpectations/app_environment_expectation.json
index b03416eec941..91f274f40278 100644
--- a/core/src/test/resources/HistoryServerExpectations/app_environment_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/app_environment_expectation.json
@@ -4,290 +4,10 @@
     "javaHome" : "/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre",
     "scalaVersion" : "version 2.11.8"
   },
-  "sparkProperties" : [
-    [ "spark.app.id", "app-20161116163331-0000" ],
-    [ "spark.app.name", "Spark shell" ],
-    [ "spark.blacklist.application.maxFailedExecutorsPerNode", "2" ],
-    [ "spark.blacklist.application.maxFailedTasksPerExecutor", "1" ],
-    [ "spark.blacklist.enabled", "TRUE" ],
-    [ "spark.blacklist.stage.maxFailedExecutorsPerNode", "3" ],
-    [ "spark.blacklist.stage.maxFailedTasksPerExecutor", "3" ],
-    [ "spark.blacklist.task.maxTaskAttemptsPerExecutor", "3" ],
-    [ "spark.blacklist.task.maxTaskAttemptsPerNode", "3" ],
-    [ "spark.blacklist.timeout", "1000000" ],
-    [ "spark.driver.host", "172.22.0.167" ],
-    [ "spark.driver.port", "51459" ],
-    [ "spark.eventLog.compress", "FALSE" ],
-    [ "spark.eventLog.dir", "/Users/jose/logs" ],
-    [ "spark.eventLog.enabled", "TRUE" ],
-    [ "spark.eventLog.overwrite", "TRUE" ],
-    [ "spark.executor.id", "driver" ],
-    [ "spark.home", "/Users/Jose/IdeaProjects/spark" ],
-    [ "spark.jars", "" ],
-    [ "spark.master", "local-cluster[4,4,1024]" ],
-    [ "spark.repl.class.outputDir", "/private/var/folders/l4/d46wlzj16593f3d812vk49tw0000gp/T/spark-1cbc97d0-7fe6-4c9f-8c2c-f6fe51ee3cf2/repl-39929169-ac4c-4c6d-b116-f648e4dd62ed" ],
-    [ "spark.repl.class.uri", "spark://172.22.0.167:51459/classes" ],
-    [ "spark.scheduler.mode", "FIFO" ],
-    [ "spark.sql.catalogImplementation", "in-memory" ],
-    [ "spark.submit.deployMode", "client" ],
-    [ "spark.task.maxFailures", "4" ]
-  ],
-  "hadoopProperties" : [
-    [ "mapreduce.jobhistory.client.thread-count", "10" ],
-    [ "mapreduce.jobtracker.address", "local" ],
-    [ "yarn.resourcemanager.scheduler.monitor.policies", "org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy" ]
-  ],
-  "systemProperties" : [
-    [ "SPARK_SUBMIT", "true" ],
-    [ "awt.toolkit", "sun.lwawt.macosx.LWCToolkit" ],
-    [ "file.encoding", "UTF-8" ],
-    [ "file.encoding.pkg", "sun.io" ],
-    [ "file.separator", "/" ],
-    [ "ftp.nonProxyHosts", "local|*.local|169.254/16|*.169.254/16" ],
-    [ "gopherProxySet", "false" ],
-    [ "http.nonProxyHosts", "local|*.local|169.254/16|*.169.254/16" ],
-    [ "io.netty.maxDirectMemory", "0" ],
-    [ "java.awt.graphicsenv", "sun.awt.CGraphicsEnvironment" ],
-    [ "java.awt.printerjob", "sun.lwawt.macosx.CPrinterJob" ],
-    [ "java.class.version", "52.0" ],
-    [ "java.endorsed.dirs", "/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/endorsed" ],
-    [ "java.ext.dirs", "/Users/Jose/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java" ],
-    [ "java.home", "/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre" ],
-    [ "java.io.tmpdir", "/var/folders/l4/d46wlzj16593f3d812vk49tw0000gp/T/" ],
-    [ "java.library.path", "/Users/Jose/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:." ],
-    [ "java.runtime.name", "Java(TM) SE Runtime Environment" ],
-    [ "java.runtime.version", "1.8.0_92-b14" ],
-    [ "java.specification.name", "Java Platform API Specification" ],
-    [ "java.specification.vendor", "Oracle Corporation" ],
-    [ "java.specification.version", "1.8" ],
-    [ "java.vendor", "Oracle Corporation" ],
-    [ "java.vendor.url", "http://java.oracle.com/" ],
-    [ "java.vendor.url.bug", "http://bugreport.sun.com/bugreport/" ],
-    [ "java.version", "1.8.0_92" ],
-    [ "java.vm.info", "mixed mode" ],
-    [ "java.vm.name", "Java HotSpot(TM) 64-Bit Server VM" ],
-    [ "java.vm.specification.name", "Java Virtual Machine Specification" ],
-    [ "java.vm.specification.vendor", "Oracle Corporation" ],
-    [ "java.vm.specification.version", "1.8" ],
-    [ "java.vm.vendor", "Oracle Corporation" ],
-    [ "java.vm.version", "25.92-b14" ],
-    [ "line.separator", "\n" ],
-    [ "os.arch", "x86_64" ],
-    [ "os.name", "Mac OS X" ],
-    [ "os.version", "10.11.6" ],
-    [ "path.separator", ":" ],
-    [ "scala.usejavacp", "true" ],
-    [ "socksNonProxyHosts", "local|*.local|169.254/16|*.169.254/16" ],
-    [ "sun.arch.data.model", "64" ],
-    [ "sun.boot.class.path", "/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk [...]
-    [ "sun.boot.library.path", "/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib" ],
-    [ "sun.cpu.endian", "little" ],
-    [ "sun.cpu.isalist", "" ],
-    [ "sun.io.unicode.encoding", "UnicodeBig" ],
-    [ "sun.java.command", "org.apache.spark.deploy.SparkSubmit --master local-cluster[4,4,1024] --conf spark.blacklist.enabled=TRUE --conf spark.blacklist.timeout=1000000 --conf spark.blacklist.application.maxFailedTasksPerExecutor=1 --conf spark.eventLog.overwrite=TRUE --conf spark.blacklist.task.maxTaskAttemptsPerNode=3 --conf spark.blacklist.stage.maxFailedTasksPerExecutor=3 --conf spark.blacklist.task.maxTaskAttemptsPerExecutor=3 --conf spark.eventLog.compress=FALSE --conf spark.blac [...]
-    [ "sun.java.launcher", "SUN_STANDARD" ],
-    [ "sun.jnu.encoding", "UTF-8" ],
-    [ "sun.management.compiler", "HotSpot 64-Bit Tiered Compilers" ],
-    [ "sun.nio.ch.bugLevel", "" ],
-    [ "sun.os.patch.level", "unknown" ],
-    [ "user.country", "US" ],
-    [ "user.dir", "/Users/Jose/IdeaProjects/spark" ],
-    [ "user.home", "/Users/Jose" ],
-    [ "user.language", "en" ],
-    [ "user.name", "jose" ],
-    [ "user.timezone", "America/Chicago" ]
-  ],
-  "metricsProperties" : [
-    [ "*.sink.servlet.class", "org.apache.spark.metrics.sink.MetricsServlet" ],
-    [ "*.sink.servlet.path", "/metrics/json" ],
-    [ "applications.sink.servlet.path", "/metrics/applications/json" ],
-    [ "master.sink.servlet.path", "/metrics/master/json" ]
-  ],
-  "classpathEntries" : [
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/RoaringBitmap-0.5.11.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/antlr4-runtime-4.5.3.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/aopalliance-1.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/aopalliance-repackaged-2.4.0-b34.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/arpack_combined_all-0.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/avro-1.7.7.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/avro-ipc-1.7.7-tests.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/avro-ipc-1.7.7.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/avro-mapred-1.7.7-hadoop2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/breeze-macros_2.11-0.12.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/breeze_2.11-0.12.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/cglib-2.2.1-v20090111.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/chill-java-0.8.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/chill_2.11-0.8.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-beanutils-1.7.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-beanutils-core-1.8.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-cli-1.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-codec-1.10.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-collections-3.2.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-compiler-3.0.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-compress-1.4.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-configuration-1.6.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-crypto-1.0.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-digester-1.8.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-httpclient-3.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-io-2.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-lang-2.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-lang3-3.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-math-2.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-math3-3.4.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/commons-net-3.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/compress-lzf-1.0.3.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/core-1.1.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/curator-client-2.4.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/curator-framework-2.4.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/curator-recipes-2.4.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/guava-14.0.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/guice-3.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-annotations-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-auth-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-client-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-common-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-hdfs-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-mapreduce-client-app-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-mapreduce-client-common-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-mapreduce-client-core-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-mapreduce-client-jobclient-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-mapreduce-client-shuffle-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-yarn-api-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-yarn-client-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-yarn-common-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hadoop-yarn-server-common-2.2.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hk2-api-2.4.0-b34.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hk2-locator-2.4.0-b34.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/hk2-utils-2.4.0-b34.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/ivy-2.4.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jackson-annotations-2.6.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jackson-core-2.6.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jackson-core-asl-1.9.13.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jackson-databind-2.6.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jackson-mapper-asl-1.9.13.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jackson-module-paranamer-2.6.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jackson-module-scala_2.11-2.6.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/janino-3.0.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/javassist-3.18.1-GA.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/javax.annotation-api-1.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/javax.inject-1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/javax.inject-2.4.0-b34.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/javax.servlet-api-3.1.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/javax.ws.rs-api-2.0.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jcl-over-slf4j-1.7.16.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jersey-client-2.22.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jersey-common-2.22.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jersey-container-servlet-2.22.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jersey-container-servlet-core-2.22.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jersey-guava-2.22.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jersey-media-jaxb-2.22.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jersey-server-2.22.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jets3t-0.7.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-client-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-continuation-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-http-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-io-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-jndi-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-plus-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-proxy-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-security-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-server-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-servlet-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-servlets-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-util-6.1.26.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-util-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-webapp-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jetty-xml-9.2.16.v20160414.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jline-2.12.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/json4s-ast_2.11-3.2.11.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/json4s-core_2.11-3.2.11.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/json4s-jackson_2.11-3.2.11.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jsr305-1.3.9.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jtransforms-2.4.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/jul-to-slf4j-1.7.16.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/kryo-shaded-3.0.3.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/leveldbjni-all-1.8.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/log4j-1.2.17.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/lz4-1.3.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/metrics-core-3.1.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/metrics-graphite-3.1.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/metrics-json-3.1.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/metrics-jvm-3.1.2.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/minlog-1.3.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/netty-3.8.0.Final.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/netty-all-4.0.41.Final.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/objenesis-2.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/opencsv-2.3.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/oro-2.0.8.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/osgi-resource-locator-1.0.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/paranamer-2.6.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/parquet-column-1.8.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/parquet-common-1.8.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/parquet-encoding-1.8.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/parquet-format-2.3.0-incubating.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/parquet-hadoop-1.8.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/parquet-jackson-1.8.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/pmml-model-1.2.15.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/pmml-schema-1.2.15.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/protobuf-java-2.5.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/py4j-0.10.4.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/pyrolite-4.13.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/scala-compiler-2.11.8.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/scala-library-2.11.8.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/scala-parser-combinators_2.11-1.0.4.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/scala-reflect-2.11.8.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/scala-xml_2.11-1.0.4.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/scalap-2.11.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/scalatest_2.11-2.2.6.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/shapeless_2.11-2.0.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/slf4j-api-1.7.16.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/slf4j-log4j12-1.7.16.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/snappy-java-1.1.2.6.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-assembly_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-catalyst_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-core_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-graphx_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-launcher_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-mllib-local_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-mllib_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-network-common_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-network-shuffle_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-repl_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-sketch_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-sql_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-streaming_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-tags_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spark-unsafe_2.11-2.1.0-SNAPSHOT.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spire-macros_2.11-0.7.4.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/spire_2.11-0.7.4.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/stream-2.7.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/univocity-parsers-2.2.1.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/unused-1.0.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/validation-api-1.1.0.Final.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/xbean-asm5-shaded-4.4.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/xmlenc-0.52.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/xz-1.0.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/zookeeper-3.4.5.jar", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/common/network-common/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/common/network-shuffle/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/common/network-yarn/target/scala-2.11/classes", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/common/sketch/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/common/tags/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/common/unsafe/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/conf/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/core/target/jars/*", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/core/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/examples/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/graphx/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/launcher/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/mllib/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/repl/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/sql/catalyst/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/sql/core/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/sql/hive-thriftserver/target/scala-2.11/classes", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/sql/hive/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/streaming/target/scala-2.11/classes/", "System Classpath" ],
-    [ "/Users/Jose/IdeaProjects/spark/yarn/target/scala-2.11/classes", "System Classpath" ]
-  ],
+  "sparkProperties" : [ [ "spark.app.id", "app-20161116163331-0000" ], [ "spark.app.name", "Spark shell" ], [ "spark.blacklist.application.maxFailedExecutorsPerNode", "2" ], [ "spark.blacklist.application.maxFailedTasksPerExecutor", "1" ], [ "spark.blacklist.enabled", "TRUE" ], [ "spark.blacklist.stage.maxFailedExecutorsPerNode", "3" ], [ "spark.blacklist.stage.maxFailedTasksPerExecutor", "3" ], [ "spark.blacklist.task.maxTaskAttemptsPerExecutor", "3" ], [ "spark.blacklist.task.maxTaskAt [...]
+  "hadoopProperties" : [ [ "mapreduce.jobhistory.client.thread-count", "10" ], [ "mapreduce.jobtracker.address", "local" ], [ "yarn.resourcemanager.scheduler.monitor.policies", "org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy" ] ],
+  "systemProperties" : [ [ "SPARK_SUBMIT", "true" ], [ "awt.toolkit", "sun.lwawt.macosx.LWCToolkit" ], [ "file.encoding", "UTF-8" ], [ "file.encoding.pkg", "sun.io" ], [ "file.separator", "/" ], [ "ftp.nonProxyHosts", "local|*.local|169.254/16|*.169.254/16" ], [ "gopherProxySet", "false" ], [ "http.nonProxyHosts", "local|*.local|169.254/16|*.169.254/16" ], [ "io.netty.maxDirectMemory", "0" ], [ "java.awt.graphicsenv", "sun.awt.CGraphicsEnvironment" ], [ "java.awt.printerjob", "sun.lwawt. [...]
+  "metricsProperties" : [ [ "*.sink.servlet.class", "org.apache.spark.metrics.sink.MetricsServlet" ], [ "*.sink.servlet.path", "/metrics/json" ], [ "applications.sink.servlet.path", "/metrics/applications/json" ], [ "master.sink.servlet.path", "/metrics/master/json" ] ],
+  "classpathEntries" : [ [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/RoaringBitmap-0.5.11.jar", "System Classpath" ], [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/antlr4-runtime-4.5.3.jar", "System Classpath" ], [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/aopalliance-1.0.jar", "System Classpath" ], [ "/Users/Jose/IdeaProjects/spark/assembly/target/scala-2.11/jars/aopalliance-repackaged-2.4.0-b34.jar", "System Classpath" ],  [...]
   "resourceProfiles" : [ ]
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/application_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/application_list_json_expectation.json
index e15707cc1214..e485c0a3a851 100644
--- a/core/src/test/resources/HistoryServerExpectations/application_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/application_list_json_expectation.json
@@ -9,9 +9,9 @@
     "sparkUser" : "lijunqing",
     "completed" : true,
     "appSparkVersion" : "3.3.0-SNAPSHOT",
-    "startTimeEpoch" : 1642039450519,
     "endTimeEpoch" : 1642039536564,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1642039450519
   } ]
 }, {
   "id" : "application_1628109047826_1317105",
@@ -24,9 +24,9 @@
     "sparkUser" : "john",
     "completed" : true,
     "appSparkVersion" : "3.1.1.119",
-    "startTimeEpoch" : 1628637895333,
     "endTimeEpoch" : 1628638170208,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1628637895333
   } ]
 }, {
   "id" : "app-20200706201101-0003",
@@ -40,8 +40,8 @@
     "completed" : true,
     "appSparkVersion" : "3.1.0-SNAPSHOT",
     "endTimeEpoch" : 1594091824231,
-    "startTimeEpoch" : 1594091460235,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1594091460235
   } ]
 }, {
   "id" : "application_1578436911597_0052",
@@ -55,8 +55,8 @@
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
     "endTimeEpoch" : 1578764802615,
-    "startTimeEpoch" : 1578764662851,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1578764662851
   } ]
 }, {
   "id" : "application_1555004656427_0144",
@@ -69,9 +69,9 @@
     "sparkUser" : "tgraves",
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
-    "startTimeEpoch" : 1562101337180,
+    "endTimeEpoch" : 1562101355974,
     "lastUpdatedEpoch" : 0,
-    "endTimeEpoch" : 1562101355974
+    "startTimeEpoch" : 1562101337180
   } ]
 }, {
   "id" : "application_1553914137147_0018",
@@ -84,9 +84,9 @@
     "sparkUser" : "systest",
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
-    "startTimeEpoch" : 1554755984286,
     "endTimeEpoch" : 1554756046454,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1554755984286
   } ]
 }, {
   "id" : "application_1516285256255_0012",
@@ -99,9 +99,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1516300707938,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1516300235119,
-    "endTimeEpoch" : 1516300707938
+    "startTimeEpoch" : 1516300235119
   } ]
 }, {
   "id" : "app-20180109111548-0000",
@@ -114,9 +114,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1515493477606,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1515492942372,
-    "endTimeEpoch" : 1515493477606
+    "startTimeEpoch" : 1515492942372
   } ]
 }, {
   "id" : "app-20161116163331-0000",
@@ -129,9 +129,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479335620587,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479335609916,
-    "endTimeEpoch" : 1479335620587
+    "startTimeEpoch" : 1479335609916
   } ]
 }, {
   "id" : "app-20161115172038-0000",
@@ -144,9 +144,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479252138874,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479252037079,
-    "endTimeEpoch" : 1479252138874
+    "startTimeEpoch" : 1479252037079
   } ]
 }, {
   "id" : "local-1430917381534",
@@ -159,9 +159,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917391398,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917391398
+    "startTimeEpoch" : 1430917380893
   } ]
 }, {
   "id" : "local-1430917381535",
@@ -175,9 +175,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380950,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917380950
+    "startTimeEpoch" : 1430917380893
   }, {
     "attemptId" : "1",
     "startTime" : "2015-05-06T13:03:00.880GMT",
@@ -187,9 +187,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380890,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380880,
-    "endTimeEpoch" : 1430917380890
+    "startTimeEpoch" : 1430917380880
   } ]
 }, {
   "id" : "local-1426533911241",
@@ -203,9 +203,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426633945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426633910242,
-    "endTimeEpoch" : 1426633945177
+    "startTimeEpoch" : 1426633910242
   }, {
     "attemptId" : "1",
     "startTime" : "2015-03-16T19:25:10.242GMT",
@@ -215,9 +215,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426533945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426533910242,
-    "endTimeEpoch" : 1426533945177
+    "startTimeEpoch" : 1426533910242
   } ]
 }, {
   "id" : "local-1425081759269",
@@ -230,9 +230,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1425081766912,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1425081758277,
-    "endTimeEpoch" : 1425081766912
+    "startTimeEpoch" : 1425081758277
   } ]
 }, {
   "id" : "local-1422981780767",
@@ -245,9 +245,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1422981788731,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1422981779720,
-    "endTimeEpoch" : 1422981788731
+    "startTimeEpoch" : 1422981779720
   } ]
 }, {
   "id" : "local-1422981759269",
@@ -260,8 +260,8 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1422981766912,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1422981758277,
-    "endTimeEpoch" : 1422981766912
+    "startTimeEpoch" : 1422981758277
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json
index ac0f2ce26051..3fc669e11d9e 100644
--- a/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/complete_stage_list_json_expectation.json
@@ -35,12 +35,12 @@
   "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedLocalBytesRead": 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
   "shuffleWriteBytes" : 0,
@@ -53,8 +53,6 @@
   "accumulatorUpdates" : [ ],
   "killedTasksSummary" : { },
   "resourceProfileId" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
   "peakExecutorMetrics" : {
     "JVMHeapMemory" : 0,
     "JVMOffHeapMemory" : 0,
@@ -79,7 +77,9 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 }, {
   "status" : "COMPLETE",
   "stageId" : 1,
@@ -117,12 +117,12 @@
   "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedLocalBytesRead": 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
   "shuffleWriteBytes" : 13180,
@@ -135,8 +135,6 @@
   "accumulatorUpdates" : [ ],
   "killedTasksSummary" : { },
   "resourceProfileId" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
   "peakExecutorMetrics" : {
     "JVMHeapMemory" : 0,
     "JVMOffHeapMemory" : 0,
@@ -161,7 +159,9 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 }, {
   "status" : "COMPLETE",
   "stageId" : 0,
@@ -199,12 +199,12 @@
   "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedLocalBytesRead": 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
   "shuffleWriteBytes" : 0,
@@ -217,8 +217,6 @@
   "accumulatorUpdates" : [ ],
   "killedTasksSummary" : { },
   "resourceProfileId" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
   "peakExecutorMetrics" : {
     "JVMHeapMemory" : 0,
     "JVMOffHeapMemory" : 0,
@@ -243,5 +241,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/completed_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/completed_app_list_json_expectation.json
index e15707cc1214..e485c0a3a851 100644
--- a/core/src/test/resources/HistoryServerExpectations/completed_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/completed_app_list_json_expectation.json
@@ -9,9 +9,9 @@
     "sparkUser" : "lijunqing",
     "completed" : true,
     "appSparkVersion" : "3.3.0-SNAPSHOT",
-    "startTimeEpoch" : 1642039450519,
     "endTimeEpoch" : 1642039536564,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1642039450519
   } ]
 }, {
   "id" : "application_1628109047826_1317105",
@@ -24,9 +24,9 @@
     "sparkUser" : "john",
     "completed" : true,
     "appSparkVersion" : "3.1.1.119",
-    "startTimeEpoch" : 1628637895333,
     "endTimeEpoch" : 1628638170208,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1628637895333
   } ]
 }, {
   "id" : "app-20200706201101-0003",
@@ -40,8 +40,8 @@
     "completed" : true,
     "appSparkVersion" : "3.1.0-SNAPSHOT",
     "endTimeEpoch" : 1594091824231,
-    "startTimeEpoch" : 1594091460235,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1594091460235
   } ]
 }, {
   "id" : "application_1578436911597_0052",
@@ -55,8 +55,8 @@
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
     "endTimeEpoch" : 1578764802615,
-    "startTimeEpoch" : 1578764662851,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1578764662851
   } ]
 }, {
   "id" : "application_1555004656427_0144",
@@ -69,9 +69,9 @@
     "sparkUser" : "tgraves",
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
-    "startTimeEpoch" : 1562101337180,
+    "endTimeEpoch" : 1562101355974,
     "lastUpdatedEpoch" : 0,
-    "endTimeEpoch" : 1562101355974
+    "startTimeEpoch" : 1562101337180
   } ]
 }, {
   "id" : "application_1553914137147_0018",
@@ -84,9 +84,9 @@
     "sparkUser" : "systest",
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
-    "startTimeEpoch" : 1554755984286,
     "endTimeEpoch" : 1554756046454,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1554755984286
   } ]
 }, {
   "id" : "application_1516285256255_0012",
@@ -99,9 +99,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1516300707938,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1516300235119,
-    "endTimeEpoch" : 1516300707938
+    "startTimeEpoch" : 1516300235119
   } ]
 }, {
   "id" : "app-20180109111548-0000",
@@ -114,9 +114,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1515493477606,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1515492942372,
-    "endTimeEpoch" : 1515493477606
+    "startTimeEpoch" : 1515492942372
   } ]
 }, {
   "id" : "app-20161116163331-0000",
@@ -129,9 +129,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479335620587,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479335609916,
-    "endTimeEpoch" : 1479335620587
+    "startTimeEpoch" : 1479335609916
   } ]
 }, {
   "id" : "app-20161115172038-0000",
@@ -144,9 +144,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479252138874,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479252037079,
-    "endTimeEpoch" : 1479252138874
+    "startTimeEpoch" : 1479252037079
   } ]
 }, {
   "id" : "local-1430917381534",
@@ -159,9 +159,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917391398,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917391398
+    "startTimeEpoch" : 1430917380893
   } ]
 }, {
   "id" : "local-1430917381535",
@@ -175,9 +175,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380950,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917380950
+    "startTimeEpoch" : 1430917380893
   }, {
     "attemptId" : "1",
     "startTime" : "2015-05-06T13:03:00.880GMT",
@@ -187,9 +187,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380890,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380880,
-    "endTimeEpoch" : 1430917380890
+    "startTimeEpoch" : 1430917380880
   } ]
 }, {
   "id" : "local-1426533911241",
@@ -203,9 +203,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426633945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426633910242,
-    "endTimeEpoch" : 1426633945177
+    "startTimeEpoch" : 1426633910242
   }, {
     "attemptId" : "1",
     "startTime" : "2015-03-16T19:25:10.242GMT",
@@ -215,9 +215,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426533945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426533910242,
-    "endTimeEpoch" : 1426533945177
+    "startTimeEpoch" : 1426533910242
   } ]
 }, {
   "id" : "local-1425081759269",
@@ -230,9 +230,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1425081766912,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1425081758277,
-    "endTimeEpoch" : 1425081766912
+    "startTimeEpoch" : 1425081758277
   } ]
 }, {
   "id" : "local-1422981780767",
@@ -245,9 +245,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1422981788731,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1422981779720,
-    "endTimeEpoch" : 1422981788731
+    "startTimeEpoch" : 1422981779720
   } ]
 }, {
   "id" : "local-1422981759269",
@@ -260,8 +260,8 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1422981766912,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1422981758277,
-    "endTimeEpoch" : 1422981766912
+    "startTimeEpoch" : 1422981758277
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_for_stage_expectation.json b/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_for_stage_expectation.json
index d614bb000e4c..2472dec11740 100644
--- a/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_for_stage_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_for_stage_expectation.json
@@ -32,19 +32,17 @@
   "shuffleRemoteBytesReadToDisk" : 0,
   "shuffleLocalBytesRead" : 0,
   "shuffleReadBytes" : 0,
-  "isShufflePushEnabled": false,
-  "shuffleCorruptMergedBlockChunks": 0,
-  "shuffleMergedFetchFallbackCount": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedLocalBytesRead": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedRemoteReqsDuration": 0,
-  "shuffleMergersCount": 0,
-  "shuffleRemoteReqsDuration": 0,
   "shuffleReadRecords" : 0,
+  "shuffleCorruptMergedBlockChunks" : 0,
+  "shuffleMergedFetchFallbackCount" : 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
+  "shuffleRemoteReqsDuration" : 0,
+  "shuffleMergedRemoteReqsDuration" : 0,
   "shuffleWriteBytes" : 460,
   "shuffleWriteTime" : 8711515,
   "shuffleWriteRecords" : 10,
@@ -58,7 +56,7 @@
       "taskId" : 0,
       "index" : 0,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.347GMT",
       "duration" : 562,
       "executorId" : "0",
@@ -95,18 +93,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 0,
@@ -125,7 +123,7 @@
       "taskId" : 5,
       "index" : 3,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.958GMT",
       "duration" : 22,
       "executorId" : "1",
@@ -161,18 +159,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -191,7 +189,7 @@
       "taskId" : 10,
       "index" : 8,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:19.034GMT",
       "duration" : 12,
       "executorId" : "1",
@@ -227,18 +225,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -257,7 +255,7 @@
       "taskId" : 1,
       "index" : 1,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.364GMT",
       "duration" : 565,
       "executorId" : "1",
@@ -293,18 +291,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -323,7 +321,7 @@
       "taskId" : 6,
       "index" : 4,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.980GMT",
       "duration" : 16,
       "executorId" : "1",
@@ -359,18 +357,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -389,7 +387,7 @@
       "taskId" : 9,
       "index" : 7,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:19.022GMT",
       "duration" : 12,
       "executorId" : "1",
@@ -425,18 +423,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -455,7 +453,7 @@
       "taskId" : 2,
       "index" : 2,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.899GMT",
       "duration" : 27,
       "executorId" : "0",
@@ -492,18 +490,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 0,
@@ -522,7 +520,7 @@
       "taskId" : 7,
       "index" : 5,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.996GMT",
       "duration" : 15,
       "executorId" : "1",
@@ -558,18 +556,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -588,7 +586,7 @@
       "taskId" : 3,
       "index" : 0,
       "attempt" : 1,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.919GMT",
       "duration" : 24,
       "executorId" : "1",
@@ -624,18 +622,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -654,7 +652,7 @@
       "taskId" : 11,
       "index" : 9,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:19.045GMT",
       "duration" : 15,
       "executorId" : "1",
@@ -690,18 +688,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -720,7 +718,7 @@
       "taskId" : 8,
       "index" : 6,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:19.011GMT",
       "duration" : 11,
       "executorId" : "1",
@@ -756,18 +754,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -786,7 +784,7 @@
       "taskId" : 4,
       "index" : 2,
       "attempt" : 1,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-09T10:21:18.943GMT",
       "duration" : 16,
       "executorId" : "1",
@@ -822,18 +820,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 46,
@@ -963,5 +961,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_node_for_stage_expectation.json b/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_node_for_stage_expectation.json
index 475dee00a265..5b1597d4544a 100644
--- a/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_node_for_stage_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/excludeOnFailure_node_for_stage_expectation.json
@@ -32,6 +32,7 @@
   "shuffleRemoteBytesReadToDisk" : 0,
   "shuffleLocalBytesRead" : 0,
   "shuffleReadBytes" : 0,
+  "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
   "shuffleMergedRemoteBlocksFetched" : 0,
@@ -42,9 +43,6 @@
   "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
-  "shuffleReadRecords" : 0,
   "shuffleWriteBytes" : 1461,
   "shuffleWriteTime" : 33251697,
   "shuffleWriteRecords" : 30,
@@ -58,7 +56,7 @@
       "taskId" : 0,
       "index" : 0,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:12.816GMT",
       "duration" : 2064,
       "executorId" : "1",
@@ -94,18 +92,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 144,
@@ -114,8 +112,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096",
-        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096"
+        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096",
+        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096"
       },
       "schedulerDelay" : 68,
       "gettingResultTime" : 0
@@ -124,7 +122,7 @@
       "taskId" : 5,
       "index" : 5,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:14.320GMT",
       "duration" : 73,
       "executorId" : "5",
@@ -161,18 +159,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 0,
@@ -191,7 +189,7 @@
       "taskId" : 10,
       "index" : 1,
       "attempt" : 1,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:15.069GMT",
       "duration" : 132,
       "executorId" : "2",
@@ -227,18 +225,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 144,
@@ -257,7 +255,7 @@
       "taskId" : 1,
       "index" : 1,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:12.832GMT",
       "duration" : 1506,
       "executorId" : "5",
@@ -294,18 +292,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 0,
@@ -324,7 +322,7 @@
       "taskId" : 6,
       "index" : 6,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:14.323GMT",
       "duration" : 67,
       "executorId" : "4",
@@ -361,18 +359,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 0,
@@ -381,8 +379,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stdout?start=-4096",
-        "stderr" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stderr?start=-4096"
+        "stderr" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stderr?start=-4096",
+        "stdout" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stdout?start=-4096"
       },
       "schedulerDelay" : 16,
       "gettingResultTime" : 0
@@ -391,7 +389,7 @@
       "taskId" : 9,
       "index" : 4,
       "attempt" : 1,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:14.973GMT",
       "duration" : 96,
       "executorId" : "2",
@@ -427,18 +425,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 147,
@@ -457,7 +455,7 @@
       "taskId" : 13,
       "index" : 9,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:15.200GMT",
       "duration" : 76,
       "executorId" : "2",
@@ -493,18 +491,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 147,
@@ -523,7 +521,7 @@
       "taskId" : 2,
       "index" : 2,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:12.832GMT",
       "duration" : 1774,
       "executorId" : "3",
@@ -559,18 +557,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 144,
@@ -579,8 +577,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000004/attilapiros/stdout?start=-4096",
-        "stderr" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000004/attilapiros/stderr?start=-4096"
+        "stderr" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000004/attilapiros/stderr?start=-4096",
+        "stdout" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000004/attilapiros/stdout?start=-4096"
       },
       "schedulerDelay" : 74,
       "gettingResultTime" : 0
@@ -589,7 +587,7 @@
       "taskId" : 12,
       "index" : 8,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:15.165GMT",
       "duration" : 60,
       "executorId" : "1",
@@ -625,18 +623,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 147,
@@ -645,8 +643,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096",
-        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096"
+        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096",
+        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096"
       },
       "schedulerDelay" : 22,
       "gettingResultTime" : 0
@@ -655,7 +653,7 @@
       "taskId" : 7,
       "index" : 5,
       "attempt" : 1,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:14.859GMT",
       "duration" : 115,
       "executorId" : "2",
@@ -691,18 +689,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 147,
@@ -721,7 +719,7 @@
       "taskId" : 3,
       "index" : 3,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:12.833GMT",
       "duration" : 2027,
       "executorId" : "2",
@@ -757,18 +755,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 147,
@@ -787,7 +785,7 @@
       "taskId" : 11,
       "index" : 7,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:15.072GMT",
       "duration" : 93,
       "executorId" : "1",
@@ -823,18 +821,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 147,
@@ -843,8 +841,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096",
-        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096"
+        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096",
+        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096"
       },
       "schedulerDelay" : 12,
       "gettingResultTime" : 0
@@ -853,7 +851,7 @@
       "taskId" : 8,
       "index" : 6,
       "attempt" : 1,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:14.879GMT",
       "duration" : 194,
       "executorId" : "1",
@@ -889,18 +887,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 147,
@@ -909,8 +907,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096",
-        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096"
+        "stderr" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stderr?start=-4096",
+        "stdout" : "http://apiros-3.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000002/attilapiros/stdout?start=-4096"
       },
       "schedulerDelay" : 84,
       "gettingResultTime" : 0
@@ -919,7 +917,7 @@
       "taskId" : 4,
       "index" : 4,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2018-01-18T18:33:12.833GMT",
       "duration" : 1522,
       "executorId" : "4",
@@ -956,18 +954,18 @@
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
           "recordsRead" : 0,
-          "shufflePushReadMetrics": {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "localMergedBytesRead": 0,
-            "localMergedBlocksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
-            "remoteMergedBlocksFetched": 0,
-            "remoteMergedChunksFetched": 0,
-            "remoteMergedReqsDuration": 0
-          },
-          "remoteReqsDuration": 0
+          "remoteReqsDuration" : 0,
+          "shufflePushReadMetrics" : {
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
+            "localMergedBytesRead" : 0,
+            "remoteMergedReqsDuration" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 0,
@@ -976,8 +974,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stdout?start=-4096",
-        "stderr" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stderr?start=-4096"
+        "stderr" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stderr?start=-4096",
+        "stdout" : "http://apiros-2.gce.test.com:8042/node/containerlogs/container_1516285256255_0012_01_000005/attilapiros/stdout?start=-4096"
       },
       "schedulerDelay" : 338,
       "gettingResultTime" : 0
@@ -1226,5 +1224,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/executor_list_with_executor_metrics_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/executor_list_with_executor_metrics_json_expectation.json
index 2833cdcfde5d..79f20de25691 100644
--- a/core/src/test/resources/HistoryServerExpectations/executor_list_with_executor_metrics_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/executor_list_with_executor_metrics_json_expectation.json
@@ -223,8 +223,8 @@
   "maxMemory" : 3820172083,
   "addTime" : "2019-04-08T20:39:54.596GMT",
   "executorLogs" : {
-    "stdout" : "http://test-2.vpc.company.com:8042/node/containerlogs/container_1553914137147_0018_01_000002/systest/stdout?start=-4096",
-    "stderr" : "http://test-2.vpc.company.com:8042/node/containerlogs/container_1553914137147_0018_01_000002/systest/stderr?start=-4096"
+    "stderr" : "http://test-2.vpc.company.com:8042/node/containerlogs/container_1553914137147_0018_01_000002/systest/stderr?start=-4096",
+    "stdout" : "http://test-2.vpc.company.com:8042/node/containerlogs/container_1553914137147_0018_01_000002/systest/stdout?start=-4096"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/executor_memory_usage_expectation.json b/core/src/test/resources/HistoryServerExpectations/executor_memory_usage_expectation.json
index 8a96858a2014..19a4432ab17b 100644
--- a/core/src/test/resources/HistoryServerExpectations/executor_memory_usage_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/executor_memory_usage_expectation.json
@@ -54,8 +54,8 @@
   "maxMemory" : 908381388,
   "addTime" : "2016-11-16T22:33:35.320GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stdout",
-    "stderr" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stderr"
+    "stderr" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stderr",
+    "stdout" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stdout"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
@@ -178,8 +178,8 @@
   "maxMemory" : 908381388,
   "addTime" : "2016-11-16T22:33:35.443GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stdout",
-    "stderr" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stderr"
+    "stderr" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stderr",
+    "stdout" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stdout"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
@@ -240,8 +240,8 @@
   "maxMemory" : 908381388,
   "addTime" : "2016-11-16T22:33:35.462GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stdout",
-    "stderr" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stderr"
+    "stderr" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stderr",
+    "stdout" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stdout"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_expectation.json b/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_expectation.json
index 8a96858a2014..19a4432ab17b 100644
--- a/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_expectation.json
@@ -54,8 +54,8 @@
   "maxMemory" : 908381388,
   "addTime" : "2016-11-16T22:33:35.320GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stdout",
-    "stderr" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stderr"
+    "stderr" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stderr",
+    "stdout" : "http://172.22.0.167:51466/logPage/?appId=app-20161116163331-0000&executorId=3&logType=stdout"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
@@ -178,8 +178,8 @@
   "maxMemory" : 908381388,
   "addTime" : "2016-11-16T22:33:35.443GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stdout",
-    "stderr" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stderr"
+    "stderr" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stderr",
+    "stdout" : "http://172.22.0.167:51467/logPage/?appId=app-20161116163331-0000&executorId=1&logType=stdout"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
@@ -240,8 +240,8 @@
   "maxMemory" : 908381388,
   "addTime" : "2016-11-16T22:33:35.462GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stdout",
-    "stderr" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stderr"
+    "stderr" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stderr",
+    "stdout" : "http://172.22.0.167:51465/logPage/?appId=app-20161116163331-0000&executorId=0&logType=stdout"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_unexcluding_expectation.json b/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_unexcluding_expectation.json
index 0e5e73f36fab..feeb4eb19a13 100644
--- a/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_unexcluding_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/executor_node_excludeOnFailure_unexcluding_expectation.json
@@ -48,8 +48,8 @@
   "maxMemory" : 384093388,
   "addTime" : "2016-11-15T23:20:42.711GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64521/logPage/?appId=app-20161115172038-0000&executorId=3&logType=stdout",
-    "stderr" : "http://172.22.0.111:64521/logPage/?appId=app-20161115172038-0000&executorId=3&logType=stderr"
+    "stderr" : "http://172.22.0.111:64521/logPage/?appId=app-20161115172038-0000&executorId=3&logType=stderr",
+    "stdout" : "http://172.22.0.111:64521/logPage/?appId=app-20161115172038-0000&executorId=3&logType=stdout"
   },
   "blacklistedInStages" : [ ],
   "peakMemoryMetrics" : {
@@ -104,8 +104,8 @@
   "maxMemory" : 384093388,
   "addTime" : "2016-11-15T23:20:42.589GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout",
-    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr"
+    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr",
+    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout"
   },
   "blacklistedInStages" : [ ],
   "peakMemoryMetrics" : {
@@ -160,8 +160,8 @@
   "maxMemory" : 384093388,
   "addTime" : "2016-11-15T23:20:42.629GMT",
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64518/logPage/?appId=app-20161115172038-0000&executorId=1&logType=stdout",
-    "stderr" : "http://172.22.0.111:64518/logPage/?appId=app-20161115172038-0000&executorId=1&logType=stderr"
+    "stderr" : "http://172.22.0.111:64518/logPage/?appId=app-20161115172038-0000&executorId=1&logType=stderr",
+    "stdout" : "http://172.22.0.111:64518/logPage/?appId=app-20161115172038-0000&executorId=1&logType=stdout"
   },
   "blacklistedInStages" : [ ],
   "peakMemoryMetrics" : {
diff --git a/core/src/test/resources/HistoryServerExpectations/executor_resource_information_expectation.json b/core/src/test/resources/HistoryServerExpectations/executor_resource_information_expectation.json
index 2caa11e2ed6b..49209521f064 100644
--- a/core/src/test/resources/HistoryServerExpectations/executor_resource_information_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/executor_resource_information_expectation.json
@@ -106,8 +106,8 @@
   "maxMemory" : 384093388,
   "addTime" : "2019-07-02T21:02:28.551GMT",
   "executorLogs" : {
-    "stdout" : "http://tomg-test:8042/node/containerlogs/container_1555004656427_0144_01_000002/tgraves/stdout?start=-4096",
-    "stderr" : "http://tomg-test:8042/node/containerlogs/container_1555004656427_0144_01_000002/tgraves/stderr?start=-4096"
+    "stderr" : "http://tomg-test:8042/node/containerlogs/container_1555004656427_0144_01_000002/tgraves/stderr?start=-4096",
+    "stdout" : "http://tomg-test:8042/node/containerlogs/container_1555004656427_0144_01_000002/tgraves/stdout?start=-4096"
   },
   "memoryMetrics" : {
     "usedOnHeapStorageMemory" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/limit_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/limit_app_list_json_expectation.json
index 2a504ce95396..31e4866b0a5b 100644
--- a/core/src/test/resources/HistoryServerExpectations/limit_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/limit_app_list_json_expectation.json
@@ -9,9 +9,9 @@
     "sparkUser" : "lijunqing",
     "completed" : true,
     "appSparkVersion" : "3.3.0-SNAPSHOT",
-    "startTimeEpoch" : 1642039450519,
     "endTimeEpoch" : 1642039536564,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1642039450519
   } ]
 }, {
   "id" : "application_1628109047826_1317105",
@@ -24,9 +24,9 @@
     "sparkUser" : "john",
     "completed" : true,
     "appSparkVersion" : "3.1.1.119",
-    "startTimeEpoch" : 1628637895333,
     "endTimeEpoch" : 1628638170208,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1628637895333
   } ]
 }, {
   "id" : "app-20200706201101-0003",
@@ -39,8 +39,8 @@
     "sparkUser" : "terryk",
     "completed" : true,
     "appSparkVersion" : "3.1.0-SNAPSHOT",
-    "startTimeEpoch" : 1594091460235,
     "endTimeEpoch" : 1594091824231,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1594091460235
   } ]
-} ]
\ No newline at end of file
+} ]
diff --git a/core/src/test/resources/HistoryServerExpectations/maxDate2_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/maxDate2_app_list_json_expectation.json
index fa12413eeb0e..a760efe2ade3 100644
--- a/core/src/test/resources/HistoryServerExpectations/maxDate2_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/maxDate2_app_list_json_expectation.json
@@ -10,7 +10,7 @@
     "completed" : true,
     "appSparkVersion" : "",
     "endTimeEpoch" : 1422981766912,
-    "startTimeEpoch" : 1422981758277,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1422981758277
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/maxDate_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/maxDate_app_list_json_expectation.json
index a0d4a0d1c455..797d69df7d4d 100644
--- a/core/src/test/resources/HistoryServerExpectations/maxDate_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/maxDate_app_list_json_expectation.json
@@ -10,8 +10,8 @@
     "completed" : true,
     "appSparkVersion" : "",
     "endTimeEpoch" : 1422981788731,
-    "startTimeEpoch" : 1422981779720,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1422981779720
   } ]
 }, {
   "id" : "local-1422981759269",
@@ -25,7 +25,7 @@
     "completed" : true,
     "appSparkVersion" : "",
     "endTimeEpoch" : 1422981766912,
-    "startTimeEpoch" : 1422981758277,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1422981758277
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/maxEndDate_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/maxEndDate_app_list_json_expectation.json
index dfa90010c6ca..5f706c37f92b 100644
--- a/core/src/test/resources/HistoryServerExpectations/maxEndDate_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/maxEndDate_app_list_json_expectation.json
@@ -10,9 +10,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380950,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917380950
+    "startTimeEpoch" : 1430917380893
   }, {
     "attemptId" : "1",
     "startTime" : "2015-05-06T13:03:00.880GMT",
@@ -22,9 +22,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380890,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380880,
-    "endTimeEpoch" : 1430917380890
+    "startTimeEpoch" : 1430917380880
   } ]
 }, {
   "id" : "local-1426533911241",
@@ -38,9 +38,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426633945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426633910242,
-    "endTimeEpoch" : 1426633945177
+    "startTimeEpoch" : 1426633910242
   }, {
     "attemptId" : "1",
     "startTime" : "2015-03-16T19:25:10.242GMT",
@@ -50,9 +50,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426533945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426533910242,
-    "endTimeEpoch" : 1426533945177
+    "startTimeEpoch" : 1426533910242
   } ]
 }, {
   "id" : "local-1425081759269",
@@ -65,9 +65,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1425081766912,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1425081758277,
-    "endTimeEpoch" : 1425081766912
+    "startTimeEpoch" : 1425081758277
   } ]
 }, {
   "id" : "local-1422981780767",
@@ -80,9 +80,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1422981788731,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1422981779720,
-    "endTimeEpoch" : 1422981788731
+    "startTimeEpoch" : 1422981779720
   } ]
 }, {
   "id" : "local-1422981759269",
@@ -95,8 +95,8 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1422981766912,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1422981758277,
-    "endTimeEpoch" : 1422981766912
+    "startTimeEpoch" : 1422981758277
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/minDate_and_maxEndDate_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/minDate_and_maxEndDate_app_list_json_expectation.json
index 3ebe60e2cd03..48a5e62d42d4 100644
--- a/core/src/test/resources/HistoryServerExpectations/minDate_and_maxEndDate_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/minDate_and_maxEndDate_app_list_json_expectation.json
@@ -10,9 +10,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380950,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917380950
+    "startTimeEpoch" : 1430917380893
   }, {
     "attemptId" : "1",
     "startTime" : "2015-05-06T13:03:00.880GMT",
@@ -22,9 +22,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380890,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380880,
-    "endTimeEpoch" : 1430917380890
+    "startTimeEpoch" : 1430917380880
   } ]
 }, {
   "id" : "local-1426533911241",
@@ -38,9 +38,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426633945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426633910242,
-    "endTimeEpoch" : 1426633945177
+    "startTimeEpoch" : 1426633910242
   }, {
     "attemptId" : "1",
     "startTime" : "2015-03-16T19:25:10.242GMT",
@@ -50,8 +50,8 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426533945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426533910242,
-    "endTimeEpoch" : 1426533945177
+    "startTimeEpoch" : 1426533910242
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/minDate_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/minDate_app_list_json_expectation.json
index 389206364550..ec5fc41d4cad 100644
--- a/core/src/test/resources/HistoryServerExpectations/minDate_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/minDate_app_list_json_expectation.json
@@ -9,9 +9,9 @@
     "sparkUser" : "lijunqing",
     "completed" : true,
     "appSparkVersion" : "3.3.0-SNAPSHOT",
-    "startTimeEpoch" : 1642039450519,
     "endTimeEpoch" : 1642039536564,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1642039450519
   } ]
 }, {
   "id" : "application_1628109047826_1317105",
@@ -24,9 +24,9 @@
     "sparkUser" : "john",
     "completed" : true,
     "appSparkVersion" : "3.1.1.119",
-    "startTimeEpoch" : 1628637895333,
     "endTimeEpoch" : 1628638170208,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1628637895333
   } ]
 }, {
   "id" : "app-20200706201101-0003",
@@ -40,8 +40,8 @@
     "completed" : true,
     "appSparkVersion" : "3.1.0-SNAPSHOT",
     "endTimeEpoch" : 1594091824231,
-    "startTimeEpoch" : 1594091460235,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1594091460235
   } ]
 }, {
   "id" : "application_1578436911597_0052",
@@ -55,8 +55,8 @@
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
     "endTimeEpoch" : 1578764802615,
-    "startTimeEpoch" : 1578764662851,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1578764662851
   } ]
 }, {
   "id" : "application_1555004656427_0144",
@@ -70,8 +70,8 @@
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
     "endTimeEpoch" : 1562101355974,
-    "startTimeEpoch" : 1562101337180,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1562101337180
   } ]
 }, {
   "id" : "application_1553914137147_0018",
@@ -84,9 +84,9 @@
     "sparkUser" : "systest",
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
-    "startTimeEpoch" : 1554755984286,
     "endTimeEpoch" : 1554756046454,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1554755984286
   } ]
 }, {
   "id" : "application_1516285256255_0012",
@@ -99,9 +99,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1516300707938,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1516300235119,
-    "endTimeEpoch" : 1516300707938
+    "startTimeEpoch" : 1516300235119
   } ]
 }, {
   "id" : "app-20180109111548-0000",
@@ -114,9 +114,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1515493477606,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1515492942372,
-    "endTimeEpoch" : 1515493477606
+    "startTimeEpoch" : 1515492942372
   } ]
 }, {
   "id" : "app-20161116163331-0000",
@@ -129,9 +129,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479335620587,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479335609916,
-    "endTimeEpoch" : 1479335620587
+    "startTimeEpoch" : 1479335609916
   } ]
 }, {
   "id" : "app-20161115172038-0000",
@@ -144,9 +144,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479252138874,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479252037079,
-    "endTimeEpoch" : 1479252138874
+    "startTimeEpoch" : 1479252037079
   } ]
 }, {
   "id" : "local-1430917381534",
@@ -159,9 +159,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917391398,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917391398
+    "startTimeEpoch" : 1430917380893
   } ]
 }, {
   "id" : "local-1430917381535",
@@ -175,9 +175,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380950,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917380950
+    "startTimeEpoch" : 1430917380893
   }, {
     "attemptId" : "1",
     "startTime" : "2015-05-06T13:03:00.880GMT",
@@ -187,9 +187,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380890,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380880,
-    "endTimeEpoch" : 1430917380890
+    "startTimeEpoch" : 1430917380880
   } ]
 }, {
   "id" : "local-1426533911241",
@@ -203,9 +203,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426633945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426633910242,
-    "endTimeEpoch" : 1426633945177
+    "startTimeEpoch" : 1426633910242
   }, {
     "attemptId" : "1",
     "startTime" : "2015-03-16T19:25:10.242GMT",
@@ -215,9 +215,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426533945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426533910242,
-    "endTimeEpoch" : 1426533945177
+    "startTimeEpoch" : 1426533910242
   } ]
 }, {
   "id" : "local-1425081759269",
@@ -230,8 +230,8 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1425081766912,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1425081758277,
-    "endTimeEpoch" : 1425081766912
+    "startTimeEpoch" : 1425081758277
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/minEndDate_and_maxEndDate_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/minEndDate_and_maxEndDate_app_list_json_expectation.json
index 74a7b40a5927..48a5e62d42d4 100644
--- a/core/src/test/resources/HistoryServerExpectations/minEndDate_and_maxEndDate_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/minEndDate_and_maxEndDate_app_list_json_expectation.json
@@ -10,9 +10,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380950,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917380950
+    "startTimeEpoch" : 1430917380893
   }, {
     "attemptId" : "1",
     "startTime" : "2015-05-06T13:03:00.880GMT",
@@ -22,9 +22,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380890,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380880,
-    "endTimeEpoch" : 1430917380890
+    "startTimeEpoch" : 1430917380880
   } ]
 }, {
   "id" : "local-1426533911241",
@@ -38,9 +38,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426633945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426633910242,
-    "endTimeEpoch" : 1426633945177
+    "startTimeEpoch" : 1426633910242
   }, {
     "attemptId" : "1",
     "startTime" : "2015-03-16T19:25:10.242GMT",
@@ -50,8 +50,8 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "",
+    "endTimeEpoch" : 1426533945177,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1426533910242,
-    "endTimeEpoch" : 1426533945177
+    "startTimeEpoch" : 1426533910242
   } ]
-} ]
\ No newline at end of file
+} ]
diff --git a/core/src/test/resources/HistoryServerExpectations/minEndDate_app_list_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/minEndDate_app_list_json_expectation.json
index 3bd637af524c..d423f5547c30 100644
--- a/core/src/test/resources/HistoryServerExpectations/minEndDate_app_list_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/minEndDate_app_list_json_expectation.json
@@ -9,9 +9,9 @@
     "sparkUser" : "lijunqing",
     "completed" : true,
     "appSparkVersion" : "3.3.0-SNAPSHOT",
-    "startTimeEpoch" : 1642039450519,
     "endTimeEpoch" : 1642039536564,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1642039450519
   } ]
 }, {
   "id" : "application_1628109047826_1317105",
@@ -24,9 +24,9 @@
     "sparkUser" : "john",
     "completed" : true,
     "appSparkVersion" : "3.1.1.119",
-    "startTimeEpoch" : 1628637895333,
     "endTimeEpoch" : 1628638170208,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1628637895333
   } ]
 }, {
   "id" : "app-20200706201101-0003",
@@ -40,8 +40,8 @@
     "completed" : true,
     "appSparkVersion" : "3.1.0-SNAPSHOT",
     "endTimeEpoch" : 1594091824231,
-    "startTimeEpoch" : 1594091460235,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1594091460235
   } ]
 }, {
   "id" : "application_1578436911597_0052",
@@ -55,8 +55,8 @@
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
     "endTimeEpoch" : 1578764802615,
-    "startTimeEpoch" : 1578764662851,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1578764662851
   } ]
 }, {
   "id" : "application_1555004656427_0144",
@@ -69,9 +69,9 @@
     "sparkUser" : "tgraves",
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
-    "startTimeEpoch" : 1562101337180,
+    "endTimeEpoch" : 1562101355974,
     "lastUpdatedEpoch" : 0,
-    "endTimeEpoch" : 1562101355974
+    "startTimeEpoch" : 1562101337180
   } ]
 }, {
   "id" : "application_1553914137147_0018",
@@ -84,9 +84,9 @@
     "sparkUser" : "systest",
     "completed" : true,
     "appSparkVersion" : "3.0.0-SNAPSHOT",
-    "startTimeEpoch" : 1554755984286,
     "endTimeEpoch" : 1554756046454,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1554755984286
   } ]
 }, {
   "id" : "application_1516285256255_0012",
@@ -99,9 +99,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1516300707938,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1516300235119,
-    "endTimeEpoch" : 1516300707938
+    "startTimeEpoch" : 1516300235119
   } ]
 }, {
   "id" : "app-20180109111548-0000",
@@ -114,9 +114,9 @@
     "sparkUser" : "attilapiros",
     "completed" : true,
     "appSparkVersion" : "2.3.0-SNAPSHOT",
+    "endTimeEpoch" : 1515493477606,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1515492942372,
-    "endTimeEpoch" : 1515493477606
+    "startTimeEpoch" : 1515492942372
   } ]
 }, {
   "id" : "app-20161116163331-0000",
@@ -129,9 +129,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479335620587,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479335609916,
-    "endTimeEpoch" : 1479335620587
+    "startTimeEpoch" : 1479335609916
   } ]
 }, {
   "id" : "app-20161115172038-0000",
@@ -144,9 +144,9 @@
     "sparkUser" : "jose",
     "completed" : true,
     "appSparkVersion" : "2.1.0-SNAPSHOT",
+    "endTimeEpoch" : 1479252138874,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1479252037079,
-    "endTimeEpoch" : 1479252138874
+    "startTimeEpoch" : 1479252037079
   } ]
 }, {
   "id" : "local-1430917381534",
@@ -159,9 +159,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917391398,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917391398
+    "startTimeEpoch" : 1430917380893
   } ]
 }, {
   "id" : "local-1430917381535",
@@ -175,9 +175,9 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380950,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380893,
-    "endTimeEpoch" : 1430917380950
+    "startTimeEpoch" : 1430917380893
   }, {
     "attemptId" : "1",
     "startTime" : "2015-05-06T13:03:00.880GMT",
@@ -187,8 +187,8 @@
     "sparkUser" : "irashid",
     "completed" : true,
     "appSparkVersion" : "1.4.0-SNAPSHOT",
+    "endTimeEpoch" : 1430917380890,
     "lastUpdatedEpoch" : 0,
-    "startTimeEpoch" : 1430917380880,
-    "endTimeEpoch" : 1430917380890
+    "startTimeEpoch" : 1430917380880
   } ]
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/multiple_resource_profiles_expectation.json b/core/src/test/resources/HistoryServerExpectations/multiple_resource_profiles_expectation.json
index 6b2c18bb0fa0..41e91ea2b929 100644
--- a/core/src/test/resources/HistoryServerExpectations/multiple_resource_profiles_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/multiple_resource_profiles_expectation.json
@@ -7,17 +7,11 @@
   "sparkProperties" : [ ],
   "hadoopProperties" : [ ],
   "systemProperties" : [ ],
-  "metricsProperties": [ ],
+  "metricsProperties" : [ ],
   "classpathEntries" : [ ],
   "resourceProfiles" : [ {
     "id" : 0,
     "executorResources" : {
-      "cores" : {
-        "resourceName" : "cores",
-        "amount" : 1,
-        "discoveryScript" : "",
-        "vendor" : ""
-      },
       "memory" : {
         "resourceName" : "memory",
         "amount" : 1024,
@@ -29,6 +23,12 @@
         "amount" : 1,
         "discoveryScript" : "/home/tgraves/getGpus",
         "vendor" : ""
+      },
+      "cores" : {
+        "resourceName" : "cores",
+        "amount" : 1,
+        "discoveryScript" : "",
+        "vendor" : ""
       }
     },
     "taskResources" : {
diff --git a/core/src/test/resources/HistoryServerExpectations/one_app_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_app_json_expectation.json
index 24ec6a163fc2..bead190da365 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_app_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_app_json_expectation.json
@@ -10,7 +10,7 @@
     "completed" : true,
     "appSparkVersion" : "",
     "endTimeEpoch" : 1422981788731,
-    "startTimeEpoch" : 1422981779720,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1422981779720
   } ]
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/one_app_multi_attempt_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_app_multi_attempt_json_expectation.json
index 94b6d6dba76e..075f115790a1 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_app_multi_attempt_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_app_multi_attempt_json_expectation.json
@@ -11,8 +11,8 @@
     "completed" : true,
     "appSparkVersion" : "",
     "endTimeEpoch" : 1426633945177,
-    "startTimeEpoch" : 1426633910242,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1426633910242
   }, {
     "attemptId" : "1",
     "startTime" : "2015-03-16T19:25:10.242GMT",
@@ -23,7 +23,7 @@
     "completed" : true,
     "appSparkVersion" : "",
     "endTimeEpoch" : 1426533945177,
-    "startTimeEpoch" : 1426533910242,
-    "lastUpdatedEpoch" : 0
+    "lastUpdatedEpoch" : 0,
+    "startTimeEpoch" : 1426533910242
   } ]
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_details_with_failed_task_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_details_with_failed_task_expectation.json
index e24ac4f82b8a..c6dbd10f4f6a 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_details_with_failed_task_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_details_with_failed_task_expectation.json
@@ -30,6 +30,9 @@
   "shuffleFetchWaitTime" : 0,
   "shuffleRemoteBytesRead" : 0,
   "shuffleRemoteBytesReadToDisk" : 0,
+  "shuffleLocalBytesRead" : 0,
+  "shuffleReadBytes" : 0,
+  "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
   "shuffleMergedRemoteBlocksFetched" : 0,
@@ -40,11 +43,6 @@
   "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
-  "shuffleLocalBytesRead" : 0,
-  "shuffleReadBytes" : 0,
-  "shuffleReadRecords" : 0,
   "shuffleWriteBytes" : 13180,
   "shuffleWriteTime" : 692000,
   "shuffleWriteRecords" : 0,
@@ -125,5 +123,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json
index 659e3c41d928..90db41b7ebe5 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_stage_attempt_json_expectation.json
@@ -35,12 +35,12 @@
   "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedLocalBytesRead": 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
   "shuffleWriteBytes" : 13180,
@@ -56,7 +56,7 @@
       "taskId" : 10,
       "index" : 2,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 456,
       "executorId" : "driver",
@@ -96,11 +96,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -119,7 +119,7 @@
       "taskId" : 14,
       "index" : 6,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.832GMT",
       "duration" : 450,
       "executorId" : "driver",
@@ -159,11 +159,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -182,7 +182,7 @@
       "taskId" : 9,
       "index" : 1,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -222,11 +222,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -245,7 +245,7 @@
       "taskId" : 13,
       "index" : 5,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.831GMT",
       "duration" : 452,
       "executorId" : "driver",
@@ -285,11 +285,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -308,7 +308,7 @@
       "taskId" : 12,
       "index" : 4,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.831GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -348,11 +348,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -371,7 +371,7 @@
       "taskId" : 11,
       "index" : 3,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -411,11 +411,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -434,7 +434,7 @@
       "taskId" : 8,
       "index" : 0,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.829GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -474,11 +474,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -497,7 +497,7 @@
       "taskId" : 15,
       "index" : 7,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.833GMT",
       "duration" : 450,
       "executorId" : "driver",
@@ -537,11 +537,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -604,8 +604,6 @@
   },
   "killedTasksSummary" : { },
   "resourceProfileId" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
   "peakExecutorMetrics" : {
     "JVMHeapMemory" : 0,
     "JVMOffHeapMemory" : 0,
@@ -630,5 +628,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json
index f84cf26fcf1d..8b220382c616 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_stage_json_expectation.json
@@ -35,12 +35,12 @@
   "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedLocalBytesRead": 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
   "shuffleWriteBytes" : 13180,
@@ -56,7 +56,7 @@
       "taskId" : 10,
       "index" : 2,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 456,
       "executorId" : "driver",
@@ -96,11 +96,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -119,7 +119,7 @@
       "taskId" : 14,
       "index" : 6,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.832GMT",
       "duration" : 450,
       "executorId" : "driver",
@@ -159,11 +159,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -182,7 +182,7 @@
       "taskId" : 9,
       "index" : 1,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -222,11 +222,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -245,7 +245,7 @@
       "taskId" : 13,
       "index" : 5,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.831GMT",
       "duration" : 452,
       "executorId" : "driver",
@@ -285,11 +285,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -308,7 +308,7 @@
       "taskId" : 12,
       "index" : 4,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.831GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -348,11 +348,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -371,7 +371,7 @@
       "taskId" : 11,
       "index" : 3,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -411,11 +411,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -434,7 +434,7 @@
       "taskId" : 8,
       "index" : 0,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.829GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -474,11 +474,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -497,7 +497,7 @@
       "taskId" : 15,
       "index" : 7,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.833GMT",
       "duration" : 450,
       "executorId" : "driver",
@@ -537,11 +537,11 @@
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
             "mergedFetchFallbackCount" : 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -604,8 +604,6 @@
   },
   "killedTasksSummary" : { },
   "resourceProfileId" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
   "peakExecutorMetrics" : {
     "JVMHeapMemory" : 0,
     "JVMOffHeapMemory" : 0,
@@ -630,5 +628,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/one_stage_json_with_details_expectation.json b/core/src/test/resources/HistoryServerExpectations/one_stage_json_with_details_expectation.json
index 564f3eadd1cc..8b220382c616 100644
--- a/core/src/test/resources/HistoryServerExpectations/one_stage_json_with_details_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/one_stage_json_with_details_expectation.json
@@ -43,8 +43,6 @@
   "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
   "shuffleWriteBytes" : 13180,
   "shuffleWriteTime" : 692000,
   "shuffleWriteRecords" : 0,
@@ -58,7 +56,7 @@
       "taskId" : 10,
       "index" : 2,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 456,
       "executorId" : "driver",
@@ -93,6 +91,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -104,8 +103,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1648,
@@ -121,7 +119,7 @@
       "taskId" : 14,
       "index" : 6,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.832GMT",
       "duration" : 450,
       "executorId" : "driver",
@@ -156,6 +154,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -167,8 +166,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1648,
@@ -184,7 +182,7 @@
       "taskId" : 9,
       "index" : 1,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -219,6 +217,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -230,8 +229,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1648,
@@ -247,7 +245,7 @@
       "taskId" : 13,
       "index" : 5,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.831GMT",
       "duration" : 452,
       "executorId" : "driver",
@@ -282,6 +280,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -293,8 +292,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1648,
@@ -310,7 +308,7 @@
       "taskId" : 12,
       "index" : 4,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.831GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -345,6 +343,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -356,8 +355,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1645,
@@ -373,7 +371,7 @@
       "taskId" : 11,
       "index" : 3,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.830GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -408,6 +406,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -419,8 +418,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1647,
@@ -436,7 +434,7 @@
       "taskId" : 8,
       "index" : 0,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.829GMT",
       "duration" : 454,
       "executorId" : "driver",
@@ -471,6 +469,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -482,8 +481,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1648,
@@ -499,7 +497,7 @@
       "taskId" : 15,
       "index" : 7,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-02-03T16:43:05.833GMT",
       "duration" : 450,
       "executorId" : "driver",
@@ -534,6 +532,7 @@
           "remoteBytesRead" : 0,
           "remoteBytesReadToDisk" : 0,
           "localBytesRead" : 0,
+          "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
             "corruptMergedBlockChunks" : 0,
@@ -545,8 +544,7 @@
             "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
-          },
-          "recordsRead" : 0
+          }
         },
         "shuffleWriteMetrics" : {
           "bytesWritten" : 1648,
@@ -630,5 +628,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 } ]
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json
index 730df3fbd534..15daeb8fac01 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_list_with_accumulable_json_expectation.json
@@ -35,12 +35,12 @@
   "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedLocalBytesRead": 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
   "shuffleWriteBytes" : 0,
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_list_with_peak_metrics_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_list_with_peak_metrics_expectation.json
index 16d92244ee0d..dc68482f9040 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_list_with_peak_metrics_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_list_with_peak_metrics_expectation.json
@@ -246,4 +246,4 @@
   },
   "isShufflePushEnabled" : false,
   "shuffleMergersCount" : 0
-} ]
\ No newline at end of file
+} ]
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json
index 2347b687d3dd..fcb3eca75253 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_expectation.json
@@ -42,11 +42,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -104,11 +104,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -166,11 +166,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -189,7 +189,6 @@
   "index" : 3,
   "attempt" : 0,
   "partitionId" : -1,
-"partitionId" : -1,
   "launchTime" : "2015-05-06T13:03:06.504GMT",
   "duration" : 423,
   "executorId" : "driver",
@@ -229,11 +228,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -291,11 +290,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -353,11 +352,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -415,11 +414,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -477,11 +476,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -539,11 +538,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -601,11 +600,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -663,11 +662,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -725,11 +724,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -787,11 +786,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -849,11 +848,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -911,11 +910,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -973,11 +972,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1035,11 +1034,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1097,11 +1096,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1159,11 +1158,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1221,11 +1220,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json
index eaec1c32ba30..7c03883befc7 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_1__expectation.json
@@ -45,12 +45,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -112,12 +112,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -179,12 +179,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -246,12 +246,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -313,12 +313,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -380,12 +380,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -447,12 +447,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -514,12 +514,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json
index 78566cbce988..80f421148fc7 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_from_multi_attempt_app_json_2__expectation.json
@@ -45,12 +45,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -112,12 +112,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -179,12 +179,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -246,12 +246,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -313,12 +313,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -380,12 +380,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -447,12 +447,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -514,12 +514,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json
index f9cf705d06c1..59e17cd2f0fa 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__offset___length_expectation.json
@@ -42,11 +42,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -104,11 +104,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -166,11 +166,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -228,11 +228,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -290,11 +290,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -352,11 +352,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -414,11 +414,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -476,11 +476,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -538,11 +538,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -600,11 +600,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -662,11 +662,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -724,11 +724,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -786,11 +786,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -848,11 +848,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -910,11 +910,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -972,11 +972,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1034,11 +1034,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1094,13 +1094,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks":0,
-        "mergedFetchFallbackCount":0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1158,11 +1158,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1218,13 +1218,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1280,13 +1280,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1342,13 +1342,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1404,13 +1404,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1466,13 +1466,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1530,11 +1530,11 @@
       "shufflePushReadMetrics" : {
         "corruptMergedBlockChunks" : 0,
         "mergedFetchFallbackCount" : 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1590,13 +1590,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1652,13 +1652,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1714,13 +1714,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1776,13 +1776,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1838,13 +1838,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1900,13 +1900,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1962,13 +1962,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2024,13 +2024,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2086,13 +2086,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2148,13 +2148,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2210,13 +2210,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2272,13 +2272,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2334,13 +2334,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2396,13 +2396,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2458,13 +2458,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2520,13 +2520,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2582,13 +2582,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2644,13 +2644,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2706,13 +2706,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2768,13 +2768,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2830,13 +2830,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2892,13 +2892,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -2954,13 +2954,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -3016,13 +3016,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -3078,13 +3078,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json
index 2a52ea95807e..0507e3d2120b 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_expectation.json
@@ -40,13 +40,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -101,14 +101,14 @@
       "localBytesRead" : 0,
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
-      "shufflePushReadMetrics": {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+      "shufflePushReadMetrics" : {
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -164,13 +164,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -226,13 +226,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -288,13 +288,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -350,13 +350,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -412,13 +412,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -474,13 +474,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -536,13 +536,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -598,13 +598,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -660,13 +660,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -722,13 +722,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -784,13 +784,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -846,13 +846,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -908,13 +908,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -970,13 +970,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1032,13 +1032,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1094,13 +1094,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1156,13 +1156,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1218,13 +1218,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json
index 718d1e7a9512..0507e3d2120b 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names___runtime_expectation.json
@@ -40,12 +40,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -102,12 +102,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -164,12 +164,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -226,12 +226,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -288,12 +288,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -350,12 +350,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -412,12 +412,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -474,12 +474,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -536,12 +536,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -598,12 +598,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -660,12 +660,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -722,12 +722,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -784,12 +784,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -846,12 +846,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -908,12 +908,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -970,12 +970,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1032,12 +1032,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1094,12 +1094,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1156,12 +1156,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1218,12 +1218,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json
index 38a4a209c045..5bfab585c806 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__sortBy_short_names__runtime_expectation.json
@@ -40,12 +40,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -102,12 +102,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -164,12 +164,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -226,12 +226,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -288,12 +288,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -350,12 +350,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -412,12 +412,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -474,12 +474,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -536,12 +536,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -598,12 +598,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -660,12 +660,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -722,12 +722,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -784,12 +784,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -846,12 +846,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -908,12 +908,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -970,12 +970,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1032,12 +1032,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1094,12 +1094,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1156,12 +1156,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -1218,12 +1218,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___offset___length_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___offset___length_expectation.json
index f9cc66295f28..c3e368b1d97c 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___offset___length_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___offset___length_expectation.json
@@ -40,12 +40,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -102,12 +102,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___sortBy_short_names__runtime_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___sortBy_short_names__runtime_expectation.json
index 368bbd862d7a..5bfab585c806 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___sortBy_short_names__runtime_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status___sortBy_short_names__runtime_expectation.json
@@ -40,13 +40,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -102,13 +102,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -164,13 +164,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -226,13 +226,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -288,13 +288,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -350,13 +350,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -412,13 +412,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -474,13 +474,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -536,13 +536,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -598,13 +598,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -660,13 +660,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -722,13 +722,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -784,13 +784,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -846,13 +846,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -908,13 +908,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -970,13 +970,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1032,13 +1032,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1094,13 +1094,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1156,13 +1156,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
@@ -1218,13 +1218,13 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
-        "remoteMergedBlocksFetched": 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
-        "remoteMergedBytesRead": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
+        "remoteMergedBlocksFetched" : 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
+        "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
       }
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status_expectation.json
index b07f86e30fab..387af46e4fbc 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_w__status_expectation.json
@@ -41,12 +41,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -107,12 +107,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -125,8 +125,8 @@
     }
   },
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout",
-    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr"
+    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr",
+    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout"
   },
   "schedulerDelay" : 269,
   "gettingResultTime" : 0
@@ -173,12 +173,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -239,12 +239,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -257,8 +257,8 @@
     }
   },
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout",
-    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr"
+    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr",
+    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout"
   },
   "schedulerDelay" : 237,
   "gettingResultTime" : 0
@@ -305,12 +305,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -371,12 +371,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -389,8 +389,8 @@
     }
   },
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout",
-    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr"
+    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr",
+    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout"
   },
   "schedulerDelay" : 227,
   "gettingResultTime" : 0
@@ -437,12 +437,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -503,12 +503,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -521,8 +521,8 @@
     }
   },
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout",
-    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr"
+    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr",
+    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout"
   },
   "schedulerDelay" : 226,
   "gettingResultTime" : 0
@@ -530,7 +530,7 @@
   "taskId" : 19,
   "index" : 11,
   "attempt" : 1,
-  "partitionId": -1,
+  "partitionId" : -1,
   "launchTime" : "2016-11-15T23:20:44.736GMT",
   "duration" : 13,
   "executorId" : "2",
@@ -569,12 +569,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -587,8 +587,8 @@
     }
   },
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout",
-    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr"
+    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr",
+    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout"
   },
   "schedulerDelay" : 11,
   "gettingResultTime" : 0
@@ -596,7 +596,7 @@
   "taskId" : 20,
   "index" : 15,
   "attempt" : 1,
-  "partitionId": -1,
+  "partitionId" : -1,
   "launchTime" : "2016-11-15T23:20:44.737GMT",
   "duration" : 19,
   "executorId" : "2",
@@ -635,12 +635,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -653,8 +653,8 @@
     }
   },
   "executorLogs" : {
-    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout",
-    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr"
+    "stderr" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stderr",
+    "stdout" : "http://172.22.0.111:64519/logPage/?appId=app-20161115172038-0000&executorId=2&logType=stdout"
   },
   "schedulerDelay" : 9,
   "gettingResultTime" : 0
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_list_with_partitionId_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_list_with_partitionId_expectation.json
index c4f1ec362410..e56a5c9fc11b 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_list_with_partitionId_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_list_with_partitionId_expectation.json
@@ -40,12 +40,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -102,12 +102,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -164,12 +164,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -226,12 +226,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -288,12 +288,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -350,12 +350,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -412,12 +412,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
@@ -474,12 +474,12 @@
       "recordsRead" : 0,
       "remoteReqsDuration" : 0,
       "shufflePushReadMetrics" : {
-        "corruptMergedBlockChunks": 0,
-        "mergedFetchFallbackCount": 0,
+        "corruptMergedBlockChunks" : 0,
+        "mergedFetchFallbackCount" : 0,
         "remoteMergedBlocksFetched" : 0,
-        "localMergedBlocksFetched" :  0,
-        "remoteMergedChunksFetched": 0,
-        "localMergedChunksFetched": 0,
+        "localMergedBlocksFetched" : 0,
+        "remoteMergedChunksFetched" : 0,
+        "localMergedChunksFetched" : 0,
         "remoteMergedBytesRead" : 0,
         "localMergedBytesRead" : 0,
         "remoteMergedReqsDuration" : 0
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json
index e3dba103bbd5..1c298208ad89 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w__custom_quantiles_expectation.json
@@ -30,17 +30,17 @@
     "remoteBytesRead" : [ 0.0, 0.0, 0.0 ],
     "remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0 ],
     "totalBlocksFetched" : [ 0.0, 0.0, 0.0 ],
-    "remoteReqsDuration" : [ 0.0, 0.0, 0.0],
+    "remoteReqsDuration" : [ 0.0, 0.0, 0.0 ],
     "shufflePushReadMetricsDist" : {
-      "corruptMergedBlockChunks": [ 0.0, 0.0, 0.0 ],
-      "mergedFetchFallbackCount": [ 0.0, 0.0, 0.0 ],
+      "corruptMergedBlockChunks" : [ 0.0, 0.0, 0.0 ],
+      "mergedFetchFallbackCount" : [ 0.0, 0.0, 0.0 ],
       "remoteMergedBlocksFetched" : [ 0.0, 0.0, 0.0 ],
       "localMergedBlocksFetched" : [ 0.0, 0.0, 0.0 ],
       "remoteMergedChunksFetched" : [ 0.0, 0.0, 0.0 ],
       "localMergedChunksFetched" : [ 0.0, 0.0, 0.0 ],
       "remoteMergedBytesRead" : [ 0.0, 0.0, 0.0 ],
       "localMergedBytesRead" : [ 0.0, 0.0, 0.0 ],
-      "remoteMergedReqsDuration" : [ 0.0, 0.0, 0.0]
+      "remoteMergedReqsDuration" : [ 0.0, 0.0, 0.0 ]
     }
   },
   "shuffleWriteMetrics" : {
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json
index ba7c79448264..44da3efbd9c5 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_read_expectation.json
@@ -48,4 +48,4 @@
     "writeRecords" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
     "writeTime" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ]
   }
-}
\ No newline at end of file
+}
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json
index b463314150ba..fd4afe46dcae 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_task_summary_w_shuffle_write_expectation.json
@@ -30,17 +30,17 @@
     "remoteBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
     "remoteBytesReadToDisk" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
     "totalBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
-    "remoteReqsDuration" : [ 0.0, 0.0, 0.0, 0.0, 0.0],
+    "remoteReqsDuration" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
     "shufflePushReadMetricsDist" : {
-      "corruptMergedBlockChunks": [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
-      "mergedFetchFallbackCount": [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
+      "corruptMergedBlockChunks" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
+      "mergedFetchFallbackCount" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
       "remoteMergedBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
       "localMergedBlocksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
       "remoteMergedChunksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
       "localMergedChunksFetched" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
       "remoteMergedBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
       "localMergedBytesRead" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ],
-      "remoteMergedReqsDuration" : [ 0.0, 0.0, 0.0, 0.0, 0.0]
+      "remoteMergedReqsDuration" : [ 0.0, 0.0, 0.0, 0.0, 0.0 ]
     }
   },
   "shuffleWriteMetrics" : {
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json
index e38741b7bf6e..c784f335e60e 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_with_accumulable_json_expectation.json
@@ -32,17 +32,17 @@
   "shuffleRemoteBytesReadToDisk" : 0,
   "shuffleLocalBytesRead" : 0,
   "shuffleReadBytes" : 0,
+  "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
-  "shuffleMergedRemoteBlocksFetched": 0,
-  "shuffleMergedLocalBlocksFetched": 0,
-  "shuffleMergedRemoteChunksFetched": 0,
-  "shuffleMergedLocalChunksFetched": 0,
-  "shuffleMergedRemoteBytesRead": 0,
-  "shuffleMergedLocalBytesRead": 0,
+  "shuffleMergedRemoteBlocksFetched" : 0,
+  "shuffleMergedLocalBlocksFetched" : 0,
+  "shuffleMergedRemoteChunksFetched" : 0,
+  "shuffleMergedLocalChunksFetched" : 0,
+  "shuffleMergedRemoteBytesRead" : 0,
+  "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
-  "shuffleReadRecords" : 0,
   "shuffleWriteBytes" : 0,
   "shuffleWriteTime" : 0,
   "shuffleWriteRecords" : 0,
@@ -60,7 +60,7 @@
       "taskId" : 0,
       "index" : 0,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.515GMT",
       "duration" : 61,
       "executorId" : "driver",
@@ -103,13 +103,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -128,7 +128,7 @@
       "taskId" : 5,
       "index" : 5,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.523GMT",
       "duration" : 52,
       "executorId" : "driver",
@@ -171,13 +171,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -196,7 +196,7 @@
       "taskId" : 1,
       "index" : 1,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.521GMT",
       "duration" : 53,
       "executorId" : "driver",
@@ -239,13 +239,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -264,7 +264,7 @@
       "taskId" : 6,
       "index" : 6,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.523GMT",
       "duration" : 51,
       "executorId" : "driver",
@@ -307,13 +307,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -332,7 +332,7 @@
       "taskId" : 2,
       "index" : 2,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.522GMT",
       "duration" : 48,
       "executorId" : "driver",
@@ -375,13 +375,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -400,7 +400,7 @@
       "taskId" : 7,
       "index" : 7,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.524GMT",
       "duration" : 51,
       "executorId" : "driver",
@@ -443,13 +443,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -468,7 +468,7 @@
       "taskId" : 3,
       "index" : 3,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.522GMT",
       "duration" : 50,
       "executorId" : "driver",
@@ -511,13 +511,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -536,7 +536,7 @@
       "taskId" : 4,
       "index" : 4,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2015-03-16T19:25:36.522GMT",
       "duration" : 52,
       "executorId" : "driver",
@@ -579,13 +579,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_with_peak_metrics_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_with_peak_metrics_expectation.json
index 630b0512e8f9..29776a6133a4 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_with_peak_metrics_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_with_peak_metrics_expectation.json
@@ -52,13 +52,13 @@
   "rddIds" : [ 10, 8, 6, 7, 9 ],
   "accumulatorUpdates" : [ ],
   "tasks" : {
-    "42" : {
-      "taskId" : 42,
-      "index" : 10,
+    "46" : {
+      "taskId" : 46,
+      "index" : 14,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.120GMT",
-      "duration" : 1923,
+      "launchTime" : "2020-07-07T03:11:21.132GMT",
+      "duration" : 1905,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -66,10 +66,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 229,
-        "executorDeserializeCpuTime" : 58152000,
-        "executorRunTime" : 1624,
-        "executorCpuTime" : 508230000,
+        "executorDeserializeTime" : 218,
+        "executorDeserializeCpuTime" : 51464000,
+        "executorRunTime" : 1618,
+        "executorCpuTime" : 490927000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -115,16 +115,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 70,
+      "schedulerDelay" : 69,
       "gettingResultTime" : 0
     },
-    "37" : {
-      "taskId" : 37,
-      "index" : 5,
+    "41" : {
+      "taskId" : 41,
+      "index" : 9,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.100GMT",
-      "duration" : 1915,
+      "launchTime" : "2020-07-07T03:11:21.116GMT",
+      "duration" : 1916,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -132,12 +132,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 256,
-        "executorDeserializeCpuTime" : 60890000,
-        "executorRunTime" : 1596,
-        "executorCpuTime" : 507192000,
+        "executorDeserializeTime" : 240,
+        "executorDeserializeCpuTime" : 55787000,
+        "executorRunTime" : 1614,
+        "executorCpuTime" : 489923000,
         "resultSize" : 2115,
-        "jvmGcTime" : 62,
+        "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -181,16 +181,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 63,
+      "schedulerDelay" : 62,
       "gettingResultTime" : 0
     },
-    "46" : {
-      "taskId" : 46,
-      "index" : 14,
+    "44" : {
+      "taskId" : 44,
+      "index" : 12,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.132GMT",
-      "duration" : 1905,
+      "launchTime" : "2020-07-07T03:11:21.126GMT",
+      "duration" : 1917,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -198,10 +198,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 218,
-        "executorDeserializeCpuTime" : 51464000,
-        "executorRunTime" : 1618,
-        "executorCpuTime" : 490927000,
+        "executorDeserializeTime" : 222,
+        "executorDeserializeCpuTime" : 51988000,
+        "executorRunTime" : 1624,
+        "executorCpuTime" : 498187000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -247,16 +247,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 69,
+      "schedulerDelay" : 71,
       "gettingResultTime" : 0
     },
-    "38" : {
-      "taskId" : 38,
-      "index" : 6,
+    "39" : {
+      "taskId" : 39,
+      "index" : 7,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.104GMT",
-      "duration" : 1835,
+      "launchTime" : "2020-07-07T03:11:21.109GMT",
+      "duration" : 1915,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -264,13 +264,13 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 255,
-        "executorDeserializeCpuTime" : 60358000,
-        "executorRunTime" : 1498,
-        "executorCpuTime" : 414110000,
-        "resultSize" : 2158,
+        "executorDeserializeTime" : 254,
+        "executorDeserializeCpuTime" : 64380000,
+        "executorRunTime" : 1596,
+        "executorCpuTime" : 539451000,
+        "resultSize" : 2115,
         "jvmGcTime" : 62,
-        "resultSerializationTime" : 11,
+        "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
         "peakExecutionMemory" : 24040,
@@ -313,16 +313,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 71,
+      "schedulerDelay" : 65,
       "gettingResultTime" : 0
     },
-    "33" : {
-      "taskId" : 33,
-      "index" : 1,
+    "35" : {
+      "taskId" : 35,
+      "index" : 3,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.082GMT",
-      "duration" : 1943,
+      "launchTime" : "2020-07-07T03:11:21.091GMT",
+      "duration" : 1925,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -330,10 +330,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 267,
-        "executorDeserializeCpuTime" : 54442000,
-        "executorRunTime" : 1597,
-        "executorCpuTime" : 519178000,
+        "executorDeserializeTime" : 263,
+        "executorDeserializeCpuTime" : 62944000,
+        "executorRunTime" : 1598,
+        "executorCpuTime" : 502908000,
         "resultSize" : 2115,
         "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
@@ -379,16 +379,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 79,
+      "schedulerDelay" : 64,
       "gettingResultTime" : 0
     },
-    "41" : {
-      "taskId" : 41,
-      "index" : 9,
+    "43" : {
+      "taskId" : 43,
+      "index" : 11,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.116GMT",
-      "duration" : 1916,
+      "launchTime" : "2020-07-07T03:11:21.123GMT",
+      "duration" : 1906,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -396,10 +396,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 240,
-        "executorDeserializeCpuTime" : 55787000,
-        "executorRunTime" : 1614,
-        "executorCpuTime" : 489923000,
+        "executorDeserializeTime" : 225,
+        "executorDeserializeCpuTime" : 48849000,
+        "executorRunTime" : 1609,
+        "executorCpuTime" : 502120000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -445,16 +445,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 62,
+      "schedulerDelay" : 72,
       "gettingResultTime" : 0
     },
-    "32" : {
-      "taskId" : 32,
-      "index" : 0,
+    "40" : {
+      "taskId" : 40,
+      "index" : 8,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.077GMT",
-      "duration" : 1960,
+      "launchTime" : "2020-07-07T03:11:21.112GMT",
+      "duration" : 1904,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -462,12 +462,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 271,
-        "executorDeserializeCpuTime" : 56827000,
-        "executorRunTime" : 1619,
-        "executorCpuTime" : 496683000,
+        "executorDeserializeTime" : 246,
+        "executorDeserializeCpuTime" : 69760000,
+        "executorRunTime" : 1595,
+        "executorCpuTime" : 510597000,
         "resultSize" : 2115,
-        "jvmGcTime" : 66,
+        "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -511,16 +511,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 70,
+      "schedulerDelay" : 63,
       "gettingResultTime" : 0
     },
-    "34" : {
-      "taskId" : 34,
-      "index" : 2,
+    "36" : {
+      "taskId" : 36,
+      "index" : 4,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.087GMT",
-      "duration" : 1939,
+      "launchTime" : "2020-07-07T03:11:21.095GMT",
+      "duration" : 1920,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -528,12 +528,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 265,
-        "executorDeserializeCpuTime" : 69492000,
-        "executorRunTime" : 1606,
-        "executorCpuTime" : 508433000,
+        "executorDeserializeTime" : 260,
+        "executorDeserializeCpuTime" : 112849000,
+        "executorRunTime" : 1596,
+        "executorCpuTime" : 503010000,
         "resultSize" : 2115,
-        "jvmGcTime" : 66,
+        "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -577,16 +577,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 68,
+      "schedulerDelay" : 64,
       "gettingResultTime" : 0
     },
-    "45" : {
-      "taskId" : 45,
-      "index" : 13,
+    "47" : {
+      "taskId" : 47,
+      "index" : 15,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.129GMT",
-      "duration" : 1895,
+      "launchTime" : "2020-07-07T03:11:21.136GMT",
+      "duration" : 1878,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -594,12 +594,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 221,
-        "executorDeserializeCpuTime" : 54222000,
-        "executorRunTime" : 1595,
-        "executorCpuTime" : 495138000,
+        "executorDeserializeTime" : 213,
+        "executorDeserializeCpuTime" : 47496000,
+        "executorRunTime" : 1594,
+        "executorCpuTime" : 1324251000,
         "resultSize" : 2115,
-        "jvmGcTime" : 62,
+        "jvmGcTime" : 52,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -643,16 +643,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 79,
+      "schedulerDelay" : 71,
       "gettingResultTime" : 0
     },
-    "44" : {
-      "taskId" : 44,
-      "index" : 12,
+    "42" : {
+      "taskId" : 42,
+      "index" : 10,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.126GMT",
-      "duration" : 1917,
+      "launchTime" : "2020-07-07T03:11:21.120GMT",
+      "duration" : 1923,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -660,10 +660,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 222,
-        "executorDeserializeCpuTime" : 51988000,
+        "executorDeserializeTime" : 229,
+        "executorDeserializeCpuTime" : 58152000,
         "executorRunTime" : 1624,
-        "executorCpuTime" : 498187000,
+        "executorCpuTime" : 508230000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -709,15 +709,15 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 71,
+      "schedulerDelay" : 70,
       "gettingResultTime" : 0
     },
-    "39" : {
-      "taskId" : 39,
-      "index" : 7,
+    "37" : {
+      "taskId" : 37,
+      "index" : 5,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.109GMT",
+      "launchTime" : "2020-07-07T03:11:21.100GMT",
       "duration" : 1915,
       "executorId" : "0",
       "host" : "127.0.0.1",
@@ -726,10 +726,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 254,
-        "executorDeserializeCpuTime" : 64380000,
+        "executorDeserializeTime" : 256,
+        "executorDeserializeCpuTime" : 60890000,
         "executorRunTime" : 1596,
-        "executorCpuTime" : 539451000,
+        "executorCpuTime" : 507192000,
         "resultSize" : 2115,
         "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
@@ -775,16 +775,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 65,
+      "schedulerDelay" : 63,
       "gettingResultTime" : 0
     },
-    "35" : {
-      "taskId" : 35,
-      "index" : 3,
+    "38" : {
+      "taskId" : 38,
+      "index" : 6,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.091GMT",
-      "duration" : 1925,
+      "launchTime" : "2020-07-07T03:11:21.104GMT",
+      "duration" : 1835,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -792,13 +792,13 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 263,
-        "executorDeserializeCpuTime" : 62944000,
-        "executorRunTime" : 1598,
-        "executorCpuTime" : 502908000,
-        "resultSize" : 2115,
+        "executorDeserializeTime" : 255,
+        "executorDeserializeCpuTime" : 60358000,
+        "executorRunTime" : 1498,
+        "executorCpuTime" : 414110000,
+        "resultSize" : 2158,
         "jvmGcTime" : 62,
-        "resultSerializationTime" : 0,
+        "resultSerializationTime" : 11,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
         "peakExecutionMemory" : 24040,
@@ -841,16 +841,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 64,
+      "schedulerDelay" : 71,
       "gettingResultTime" : 0
     },
-    "43" : {
-      "taskId" : 43,
-      "index" : 11,
+    "33" : {
+      "taskId" : 33,
+      "index" : 1,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.123GMT",
-      "duration" : 1906,
+      "launchTime" : "2020-07-07T03:11:21.082GMT",
+      "duration" : 1943,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -858,12 +858,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 225,
-        "executorDeserializeCpuTime" : 48849000,
-        "executorRunTime" : 1609,
-        "executorCpuTime" : 502120000,
+        "executorDeserializeTime" : 267,
+        "executorDeserializeCpuTime" : 54442000,
+        "executorRunTime" : 1597,
+        "executorCpuTime" : 519178000,
         "resultSize" : 2115,
-        "jvmGcTime" : 66,
+        "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -907,16 +907,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 72,
+      "schedulerDelay" : 79,
       "gettingResultTime" : 0
     },
-    "40" : {
-      "taskId" : 40,
-      "index" : 8,
+    "45" : {
+      "taskId" : 45,
+      "index" : 13,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.112GMT",
-      "duration" : 1904,
+      "launchTime" : "2020-07-07T03:11:21.129GMT",
+      "duration" : 1895,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -924,10 +924,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 246,
-        "executorDeserializeCpuTime" : 69760000,
+        "executorDeserializeTime" : 221,
+        "executorDeserializeCpuTime" : 54222000,
         "executorRunTime" : 1595,
-        "executorCpuTime" : 510597000,
+        "executorCpuTime" : 495138000,
         "resultSize" : 2115,
         "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
@@ -973,16 +973,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 63,
+      "schedulerDelay" : 79,
       "gettingResultTime" : 0
     },
-    "36" : {
-      "taskId" : 36,
-      "index" : 4,
+    "32" : {
+      "taskId" : 32,
+      "index" : 0,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.095GMT",
-      "duration" : 1920,
+      "launchTime" : "2020-07-07T03:11:21.077GMT",
+      "duration" : 1960,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -990,12 +990,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 260,
-        "executorDeserializeCpuTime" : 112849000,
-        "executorRunTime" : 1596,
-        "executorCpuTime" : 503010000,
+        "executorDeserializeTime" : 271,
+        "executorDeserializeCpuTime" : 56827000,
+        "executorRunTime" : 1619,
+        "executorCpuTime" : 496683000,
         "resultSize" : 2115,
-        "jvmGcTime" : 62,
+        "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -1039,16 +1039,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 64,
+      "schedulerDelay" : 70,
       "gettingResultTime" : 0
     },
-    "47" : {
-      "taskId" : 47,
-      "index" : 15,
+    "34" : {
+      "taskId" : 34,
+      "index" : 2,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.136GMT",
-      "duration" : 1878,
+      "launchTime" : "2020-07-07T03:11:21.087GMT",
+      "duration" : 1939,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -1056,12 +1056,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 213,
-        "executorDeserializeCpuTime" : 47496000,
-        "executorRunTime" : 1594,
-        "executorCpuTime" : 1324251000,
+        "executorDeserializeTime" : 265,
+        "executorDeserializeCpuTime" : 69492000,
+        "executorRunTime" : 1606,
+        "executorCpuTime" : 508433000,
         "resultSize" : 2115,
-        "jvmGcTime" : 52,
+        "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -1105,7 +1105,7 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 71,
+      "schedulerDelay" : 68,
       "gettingResultTime" : 0
     }
   },
@@ -1226,4 +1226,4 @@
   },
   "isShufflePushEnabled" : false,
   "shuffleMergersCount" : 0
-}
\ No newline at end of file
+}
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_with_speculation_summary_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_with_speculation_summary_expectation.json
index 23770480ad62..3faec4a7b9b9 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_with_speculation_summary_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_with_speculation_summary_expectation.json
@@ -32,6 +32,7 @@
   "shuffleRemoteBytesReadToDisk" : 0,
   "shuffleLocalBytesRead" : 0,
   "shuffleReadBytes" : 0,
+  "shuffleReadRecords" : 0,
   "shuffleCorruptMergedBlockChunks" : 0,
   "shuffleMergedFetchFallbackCount" : 0,
   "shuffleMergedRemoteBlocksFetched" : 0,
@@ -42,9 +43,6 @@
   "shuffleMergedLocalBytesRead" : 0,
   "shuffleRemoteReqsDuration" : 0,
   "shuffleMergedRemoteReqsDuration" : 0,
-  "isShufflePushEnabled" : false,
-  "shuffleMergersCount" : 0,
-  "shuffleReadRecords" : 0,
   "shuffleWriteBytes" : 0,
   "shuffleWriteTime" : 0,
   "shuffleWriteRecords" : 0,
@@ -58,7 +56,7 @@
       "taskId" : 0,
       "index" : 0,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2021-08-10T23:27:53.885GMT",
       "duration" : 2234,
       "executorId" : "7",
@@ -96,13 +94,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -114,8 +112,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stdout?start=-4096",
-        "stderr" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stderr?start=-4096"
+        "stderr" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stderr?start=-4096",
+        "stdout" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stdout?start=-4096"
       },
       "schedulerDelay" : 111,
       "gettingResultTime" : 0
@@ -124,7 +122,7 @@
       "taskId" : 1,
       "index" : 1,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2021-08-10T23:27:53.903GMT",
       "duration" : 2647,
       "executorId" : "5",
@@ -162,13 +160,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -190,7 +188,7 @@
       "taskId" : 2,
       "index" : 2,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2021-08-10T23:27:53.904GMT",
       "duration" : 5124,
       "executorId" : "8",
@@ -228,13 +226,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -246,8 +244,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://host-25261:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000009/john/stdout?start=-4096",
-        "stderr" : "http://host-25261:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000009/john/stderr?start=-4096"
+        "stderr" : "http://host-25261:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000009/john/stderr?start=-4096",
+        "stdout" : "http://host-25261:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000009/john/stdout?start=-4096"
       },
       "schedulerDelay" : 220,
       "gettingResultTime" : 0
@@ -256,7 +254,7 @@
       "taskId" : 3,
       "index" : 3,
       "attempt" : 0,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2021-08-10T23:27:53.904GMT",
       "duration" : 63773,
       "executorId" : "10",
@@ -294,13 +292,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -312,8 +310,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://host-12413:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000011/john/stdout?start=-4096",
-        "stderr" : "http://host-12413:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000011/john/stderr?start=-4096"
+        "stderr" : "http://host-12413:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000011/john/stderr?start=-4096",
+        "stdout" : "http://host-12413:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000011/john/stdout?start=-4096"
       },
       "schedulerDelay" : 91,
       "gettingResultTime" : 0
@@ -322,7 +320,7 @@
       "taskId" : 4,
       "index" : 3,
       "attempt" : 1,
-      "partitionId": -1,
+      "partitionId" : -1,
       "launchTime" : "2021-08-10T23:28:04.499GMT",
       "duration" : 53201,
       "executorId" : "7",
@@ -361,13 +359,13 @@
           "recordsRead" : 0,
           "remoteReqsDuration" : 0,
           "shufflePushReadMetrics" : {
-            "corruptMergedBlockChunks": 0,
-            "mergedFetchFallbackCount": 0,
-            "remoteMergedBlocksFetched": 0,
-            "localMergedBlocksFetched" :  0,
-            "remoteMergedChunksFetched": 0,
-            "localMergedChunksFetched": 0,
-            "remoteMergedBytesRead": 0,
+            "corruptMergedBlockChunks" : 0,
+            "mergedFetchFallbackCount" : 0,
+            "remoteMergedBlocksFetched" : 0,
+            "localMergedBlocksFetched" : 0,
+            "remoteMergedChunksFetched" : 0,
+            "localMergedChunksFetched" : 0,
+            "remoteMergedBytesRead" : 0,
             "localMergedBytesRead" : 0,
             "remoteMergedReqsDuration" : 0
           }
@@ -379,8 +377,8 @@
         }
       },
       "executorLogs" : {
-        "stdout" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stdout?start=-4096",
-        "stderr" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stderr?start=-4096"
+        "stderr" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stderr?start=-4096",
+        "stdout" : "http://host-12291:8042/node/containerlogs/container_e18_1628109047826_1317105_01_000008/john/stdout?start=-4096"
       },
       "schedulerDelay" : 23,
       "gettingResultTime" : 0
@@ -595,5 +593,7 @@
     "TotalGCTime" : 0,
     "ConcurrentGCCount" : 0,
     "ConcurrentGCTime" : 0
-  }
+  },
+  "isShufflePushEnabled" : false,
+  "shuffleMergersCount" : 0
 }
diff --git a/core/src/test/resources/HistoryServerExpectations/stage_with_summaries_expectation.json b/core/src/test/resources/HistoryServerExpectations/stage_with_summaries_expectation.json
index c8458a409589..365aab1300b9 100644
--- a/core/src/test/resources/HistoryServerExpectations/stage_with_summaries_expectation.json
+++ b/core/src/test/resources/HistoryServerExpectations/stage_with_summaries_expectation.json
@@ -52,13 +52,13 @@
   "rddIds" : [ 10, 8, 6, 7, 9 ],
   "accumulatorUpdates" : [ ],
   "tasks" : {
-    "42" : {
-      "taskId" : 42,
-      "index" : 10,
+    "46" : {
+      "taskId" : 46,
+      "index" : 14,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.120GMT",
-      "duration" : 1923,
+      "launchTime" : "2020-07-07T03:11:21.132GMT",
+      "duration" : 1905,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -66,10 +66,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 229,
-        "executorDeserializeCpuTime" : 58152000,
-        "executorRunTime" : 1624,
-        "executorCpuTime" : 508230000,
+        "executorDeserializeTime" : 218,
+        "executorDeserializeCpuTime" : 51464000,
+        "executorRunTime" : 1618,
+        "executorCpuTime" : 490927000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -115,16 +115,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 70,
+      "schedulerDelay" : 69,
       "gettingResultTime" : 0
     },
-    "37" : {
-      "taskId" : 37,
-      "index" : 5,
+    "41" : {
+      "taskId" : 41,
+      "index" : 9,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.100GMT",
-      "duration" : 1915,
+      "launchTime" : "2020-07-07T03:11:21.116GMT",
+      "duration" : 1916,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -132,12 +132,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 256,
-        "executorDeserializeCpuTime" : 60890000,
-        "executorRunTime" : 1596,
-        "executorCpuTime" : 507192000,
+        "executorDeserializeTime" : 240,
+        "executorDeserializeCpuTime" : 55787000,
+        "executorRunTime" : 1614,
+        "executorCpuTime" : 489923000,
         "resultSize" : 2115,
-        "jvmGcTime" : 62,
+        "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -181,16 +181,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 63,
+      "schedulerDelay" : 62,
       "gettingResultTime" : 0
     },
-    "46" : {
-      "taskId" : 46,
-      "index" : 14,
+    "44" : {
+      "taskId" : 44,
+      "index" : 12,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.132GMT",
-      "duration" : 1905,
+      "launchTime" : "2020-07-07T03:11:21.126GMT",
+      "duration" : 1917,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -198,10 +198,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 218,
-        "executorDeserializeCpuTime" : 51464000,
-        "executorRunTime" : 1618,
-        "executorCpuTime" : 490927000,
+        "executorDeserializeTime" : 222,
+        "executorDeserializeCpuTime" : 51988000,
+        "executorRunTime" : 1624,
+        "executorCpuTime" : 498187000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -247,16 +247,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 69,
+      "schedulerDelay" : 71,
       "gettingResultTime" : 0
     },
-    "38" : {
-      "taskId" : 38,
-      "index" : 6,
+    "39" : {
+      "taskId" : 39,
+      "index" : 7,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.104GMT",
-      "duration" : 1835,
+      "launchTime" : "2020-07-07T03:11:21.109GMT",
+      "duration" : 1915,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -264,13 +264,13 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 255,
-        "executorDeserializeCpuTime" : 60358000,
-        "executorRunTime" : 1498,
-        "executorCpuTime" : 414110000,
-        "resultSize" : 2158,
+        "executorDeserializeTime" : 254,
+        "executorDeserializeCpuTime" : 64380000,
+        "executorRunTime" : 1596,
+        "executorCpuTime" : 539451000,
+        "resultSize" : 2115,
         "jvmGcTime" : 62,
-        "resultSerializationTime" : 11,
+        "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
         "peakExecutionMemory" : 24040,
@@ -313,16 +313,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 71,
+      "schedulerDelay" : 65,
       "gettingResultTime" : 0
     },
-    "33" : {
-      "taskId" : 33,
-      "index" : 1,
+    "35" : {
+      "taskId" : 35,
+      "index" : 3,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.082GMT",
-      "duration" : 1943,
+      "launchTime" : "2020-07-07T03:11:21.091GMT",
+      "duration" : 1925,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -330,10 +330,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 267,
-        "executorDeserializeCpuTime" : 54442000,
-        "executorRunTime" : 1597,
-        "executorCpuTime" : 519178000,
+        "executorDeserializeTime" : 263,
+        "executorDeserializeCpuTime" : 62944000,
+        "executorRunTime" : 1598,
+        "executorCpuTime" : 502908000,
         "resultSize" : 2115,
         "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
@@ -379,16 +379,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 79,
+      "schedulerDelay" : 64,
       "gettingResultTime" : 0
     },
-    "41" : {
-      "taskId" : 41,
-      "index" : 9,
+    "43" : {
+      "taskId" : 43,
+      "index" : 11,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.116GMT",
-      "duration" : 1916,
+      "launchTime" : "2020-07-07T03:11:21.123GMT",
+      "duration" : 1906,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -396,10 +396,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 240,
-        "executorDeserializeCpuTime" : 55787000,
-        "executorRunTime" : 1614,
-        "executorCpuTime" : 489923000,
+        "executorDeserializeTime" : 225,
+        "executorDeserializeCpuTime" : 48849000,
+        "executorRunTime" : 1609,
+        "executorCpuTime" : 502120000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -445,16 +445,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 62,
+      "schedulerDelay" : 72,
       "gettingResultTime" : 0
     },
-    "32" : {
-      "taskId" : 32,
-      "index" : 0,
+    "40" : {
+      "taskId" : 40,
+      "index" : 8,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.077GMT",
-      "duration" : 1960,
+      "launchTime" : "2020-07-07T03:11:21.112GMT",
+      "duration" : 1904,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -462,12 +462,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 271,
-        "executorDeserializeCpuTime" : 56827000,
-        "executorRunTime" : 1619,
-        "executorCpuTime" : 496683000,
+        "executorDeserializeTime" : 246,
+        "executorDeserializeCpuTime" : 69760000,
+        "executorRunTime" : 1595,
+        "executorCpuTime" : 510597000,
         "resultSize" : 2115,
-        "jvmGcTime" : 66,
+        "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -511,16 +511,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 70,
+      "schedulerDelay" : 63,
       "gettingResultTime" : 0
     },
-    "34" : {
-      "taskId" : 34,
-      "index" : 2,
+    "36" : {
+      "taskId" : 36,
+      "index" : 4,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.087GMT",
-      "duration" : 1939,
+      "launchTime" : "2020-07-07T03:11:21.095GMT",
+      "duration" : 1920,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -528,12 +528,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 265,
-        "executorDeserializeCpuTime" : 69492000,
-        "executorRunTime" : 1606,
-        "executorCpuTime" : 508433000,
+        "executorDeserializeTime" : 260,
+        "executorDeserializeCpuTime" : 112849000,
+        "executorRunTime" : 1596,
+        "executorCpuTime" : 503010000,
         "resultSize" : 2115,
-        "jvmGcTime" : 66,
+        "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -577,16 +577,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 68,
+      "schedulerDelay" : 64,
       "gettingResultTime" : 0
     },
-    "45" : {
-      "taskId" : 45,
-      "index" : 13,
+    "47" : {
+      "taskId" : 47,
+      "index" : 15,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.129GMT",
-      "duration" : 1895,
+      "launchTime" : "2020-07-07T03:11:21.136GMT",
+      "duration" : 1878,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -594,12 +594,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 221,
-        "executorDeserializeCpuTime" : 54222000,
-        "executorRunTime" : 1595,
-        "executorCpuTime" : 495138000,
+        "executorDeserializeTime" : 213,
+        "executorDeserializeCpuTime" : 47496000,
+        "executorRunTime" : 1594,
+        "executorCpuTime" : 1324251000,
         "resultSize" : 2115,
-        "jvmGcTime" : 62,
+        "jvmGcTime" : 52,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -643,16 +643,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 79,
+      "schedulerDelay" : 71,
       "gettingResultTime" : 0
     },
-    "44" : {
-      "taskId" : 44,
-      "index" : 12,
+    "42" : {
+      "taskId" : 42,
+      "index" : 10,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.126GMT",
-      "duration" : 1917,
+      "launchTime" : "2020-07-07T03:11:21.120GMT",
+      "duration" : 1923,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -660,10 +660,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 222,
-        "executorDeserializeCpuTime" : 51988000,
+        "executorDeserializeTime" : 229,
+        "executorDeserializeCpuTime" : 58152000,
         "executorRunTime" : 1624,
-        "executorCpuTime" : 498187000,
+        "executorCpuTime" : 508230000,
         "resultSize" : 2115,
         "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
@@ -709,15 +709,15 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 71,
+      "schedulerDelay" : 70,
       "gettingResultTime" : 0
     },
-    "39" : {
-      "taskId" : 39,
-      "index" : 7,
+    "37" : {
+      "taskId" : 37,
+      "index" : 5,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.109GMT",
+      "launchTime" : "2020-07-07T03:11:21.100GMT",
       "duration" : 1915,
       "executorId" : "0",
       "host" : "127.0.0.1",
@@ -726,10 +726,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 254,
-        "executorDeserializeCpuTime" : 64380000,
+        "executorDeserializeTime" : 256,
+        "executorDeserializeCpuTime" : 60890000,
         "executorRunTime" : 1596,
-        "executorCpuTime" : 539451000,
+        "executorCpuTime" : 507192000,
         "resultSize" : 2115,
         "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
@@ -775,16 +775,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 65,
+      "schedulerDelay" : 63,
       "gettingResultTime" : 0
     },
-    "35" : {
-      "taskId" : 35,
-      "index" : 3,
+    "38" : {
+      "taskId" : 38,
+      "index" : 6,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.091GMT",
-      "duration" : 1925,
+      "launchTime" : "2020-07-07T03:11:21.104GMT",
+      "duration" : 1835,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -792,13 +792,13 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 263,
-        "executorDeserializeCpuTime" : 62944000,
-        "executorRunTime" : 1598,
-        "executorCpuTime" : 502908000,
-        "resultSize" : 2115,
+        "executorDeserializeTime" : 255,
+        "executorDeserializeCpuTime" : 60358000,
+        "executorRunTime" : 1498,
+        "executorCpuTime" : 414110000,
+        "resultSize" : 2158,
         "jvmGcTime" : 62,
-        "resultSerializationTime" : 0,
+        "resultSerializationTime" : 11,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
         "peakExecutionMemory" : 24040,
@@ -841,16 +841,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 64,
+      "schedulerDelay" : 71,
       "gettingResultTime" : 0
     },
-    "43" : {
-      "taskId" : 43,
-      "index" : 11,
+    "33" : {
+      "taskId" : 33,
+      "index" : 1,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.123GMT",
-      "duration" : 1906,
+      "launchTime" : "2020-07-07T03:11:21.082GMT",
+      "duration" : 1943,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -858,12 +858,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 225,
-        "executorDeserializeCpuTime" : 48849000,
-        "executorRunTime" : 1609,
-        "executorCpuTime" : 502120000,
+        "executorDeserializeTime" : 267,
+        "executorDeserializeCpuTime" : 54442000,
+        "executorRunTime" : 1597,
+        "executorCpuTime" : 519178000,
         "resultSize" : 2115,
-        "jvmGcTime" : 66,
+        "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -907,16 +907,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 72,
+      "schedulerDelay" : 79,
       "gettingResultTime" : 0
     },
-    "40" : {
-      "taskId" : 40,
-      "index" : 8,
+    "45" : {
+      "taskId" : 45,
+      "index" : 13,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.112GMT",
-      "duration" : 1904,
+      "launchTime" : "2020-07-07T03:11:21.129GMT",
+      "duration" : 1895,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -924,10 +924,10 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 246,
-        "executorDeserializeCpuTime" : 69760000,
+        "executorDeserializeTime" : 221,
+        "executorDeserializeCpuTime" : 54222000,
         "executorRunTime" : 1595,
-        "executorCpuTime" : 510597000,
+        "executorCpuTime" : 495138000,
         "resultSize" : 2115,
         "jvmGcTime" : 62,
         "resultSerializationTime" : 0,
@@ -973,16 +973,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 63,
+      "schedulerDelay" : 79,
       "gettingResultTime" : 0
     },
-    "36" : {
-      "taskId" : 36,
-      "index" : 4,
+    "32" : {
+      "taskId" : 32,
+      "index" : 0,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.095GMT",
-      "duration" : 1920,
+      "launchTime" : "2020-07-07T03:11:21.077GMT",
+      "duration" : 1960,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -990,12 +990,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 260,
-        "executorDeserializeCpuTime" : 112849000,
-        "executorRunTime" : 1596,
-        "executorCpuTime" : 503010000,
+        "executorDeserializeTime" : 271,
+        "executorDeserializeCpuTime" : 56827000,
+        "executorRunTime" : 1619,
+        "executorCpuTime" : 496683000,
         "resultSize" : 2115,
-        "jvmGcTime" : 62,
+        "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -1039,16 +1039,16 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 64,
+      "schedulerDelay" : 70,
       "gettingResultTime" : 0
     },
-    "47" : {
-      "taskId" : 47,
-      "index" : 15,
+    "34" : {
+      "taskId" : 34,
+      "index" : 2,
       "attempt" : 0,
       "partitionId" : -1,
-      "launchTime" : "2020-07-07T03:11:21.136GMT",
-      "duration" : 1878,
+      "launchTime" : "2020-07-07T03:11:21.087GMT",
+      "duration" : 1939,
       "executorId" : "0",
       "host" : "127.0.0.1",
       "status" : "SUCCESS",
@@ -1056,12 +1056,12 @@
       "speculative" : false,
       "accumulatorUpdates" : [ ],
       "taskMetrics" : {
-        "executorDeserializeTime" : 213,
-        "executorDeserializeCpuTime" : 47496000,
-        "executorRunTime" : 1594,
-        "executorCpuTime" : 1324251000,
+        "executorDeserializeTime" : 265,
+        "executorDeserializeCpuTime" : 69492000,
+        "executorRunTime" : 1606,
+        "executorCpuTime" : 508433000,
         "resultSize" : 2115,
-        "jvmGcTime" : 52,
+        "jvmGcTime" : 66,
         "resultSerializationTime" : 0,
         "memoryBytesSpilled" : 0,
         "diskBytesSpilled" : 0,
@@ -1105,7 +1105,7 @@
         "stdout" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stdout",
         "stderr" : "http://127.0.0.1:8081/logPage/?appId=app-20200706201101-0003&executorId=0&logType=stderr"
       },
-      "schedulerDelay" : 71,
+      "schedulerDelay" : 68,
       "gettingResultTime" : 0
     }
   },
diff --git a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala
index 10092f416f9e..73635b4f18e0 100644
--- a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala
+++ b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala
@@ -55,22 +55,33 @@ import org.apache.spark.util.{ResetSystemProperties, ShutdownHookManager, Utils}
 import org.apache.spark.util.ArrayImplicits._
 
 /**
- * A collection of tests against the historyserver, including comparing responses from the json
- * metrics api to a set of known "golden files".  If new endpoints / parameters are added,
- * cases should be added to this test suite.  The expected outcomes can be generated by running
- * the HistoryServerSuite.main.  Note that this will blindly generate new expectation files matching
- * the current behavior -- the developer must verify that behavior is correct.
+ * Abstract base class for testing the History Server, including mechanisms to compare
+ * responses from the JSON metrics API against predefined "golden files". This suite
+ * establishes a framework for validating API behaviors across different storage backends.
  *
- * Similarly, if the behavior is changed, HistoryServerSuite.main can be run to update the
- * expectations.  However, in general this should be done with extreme caution, as the metrics
- * are considered part of Spark's public api.
+ * Test cases added here will be executed against all concrete implementations. For backend-specific
+ * validations, subclasses should override relevant setup methods or add specialized tests.
+ *
+ * The test suite supports two operational modes:
+ * 1. Validation Mode (default): Compares API responses against existing golden files.
+ * 2. Generation Mode: Generates new golden files when SPARK_GENERATE_GOLDEN_FILES=1 is set.
+ *
+ * To generate golden files, run the following SBT command with the environment variable set:
+ * {{{
+ *   SPARK_GENERATE_GOLDEN_FILES=1 build/sbt "core/testOnly <sub class>"
+ * }}}
+ *
+ * Note: New golden files should be carefully reviewed to ensure they align with Spark's
+ * public API specifications. Changes to metrics should be made with caution, as they
+ * are considered part of Spark's public interface.
  */
 abstract class HistoryServerSuite extends SparkFunSuite with BeforeAndAfter with Matchers
   with MockitoSugar with JsonTestUtils with Eventually with WebBrowser with LocalSparkContext
   with ResetSystemProperties {
 
-  private val logDir = getTestResourcePath("spark-events")
-  private val expRoot = getTestResourceFile("HistoryServerExpectations")
+  private val baseResourcePath = getWorkspaceFilePath("core", "src", "test", "resources").toFile
+  private val logDir = new File(baseResourcePath, "spark-events").getCanonicalPath
+  private val expRoot = new File(baseResourcePath, "HistoryServerExpectations")
   private val storeDir = Utils.createTempDir(namePrefix = "history")
 
   private var provider: FsHistoryProvider = null
@@ -207,6 +218,11 @@ abstract class HistoryServerSuite extends SparkFunSuite with BeforeAndAfter with
       "applications/application_1628109047826_1317105/stages/0/0/"
   )
 
+  if (regenerateGoldenFiles) {
+    FileUtils.deleteDirectory(expRoot)
+    expRoot.mkdirs()
+  }
+
   // run a bunch of characterization tests -- just verify the behavior is the same as what is saved
   // in the test resource folder
   cases.foreach { case (name, path) =>
@@ -216,12 +232,20 @@ abstract class HistoryServerSuite extends SparkFunSuite with BeforeAndAfter with
       jsonOpt should be (Symbol("defined"))
       errOpt should be (None)
 
-      val exp = IOUtils.toString(new FileInputStream(
-        new File(expRoot, HistoryServerSuite.sanitizePath(name) + "_expectation.json")),
-        StandardCharsets.UTF_8)
+      val goldenFile =
+        new File(expRoot, HistoryServerSuite.sanitizePath(name) + "_expectation.json")
+      val cleanedJsonStr = clearLastUpdated(jsonOpt.get)
+
+      if (regenerateGoldenFiles) {
+        Utils.tryWithResource(new FileWriter(goldenFile)) { out =>
+          out.write(cleanedJsonStr)
+          out.write('\n')
+        }
+      }
+
+      val exp = IOUtils.toString(new FileInputStream(goldenFile), StandardCharsets.UTF_8)
       // compare the ASTs so formatting differences don't cause failures
-      import org.json4s.jackson.JsonMethods._
-      val jsonAst = parse(clearLastUpdated(jsonOpt.get))
+      val jsonAst = parse(cleanedJsonStr)
       val expAst = parse(exp)
       assertValidDataInJson(jsonAst, expAst)
     }
@@ -694,15 +718,6 @@ abstract class HistoryServerSuite extends SparkFunSuite with BeforeAndAfter with
     new URI(s"http://$localhost:$port/api/v1/$path").toURL
   }
 
-  def generateExpectation(name: String, path: String): Unit = {
-    val json = getUrl(path)
-    val file = new File(expRoot, HistoryServerSuite.sanitizePath(name) + "_expectation.json")
-    val out = new FileWriter(file)
-    out.write(clearLastUpdated(json))
-    out.write('\n')
-    out.close()
-  }
-
   test("SPARK-31697: HistoryServer should set Content-Type") {
     val port = server.boundPort
     val nonExistenceAppId = "local-non-existence"
@@ -730,23 +745,6 @@ abstract class HistoryServerSuite extends SparkFunSuite with BeforeAndAfter with
 }
 
 object HistoryServerSuite {
-  def main(args: Array[String]): Unit = {
-    // generate the "expected" results for the characterization tests.  Just blindly assume the
-    // current behavior is correct, and write out the returned json to the test/resource files
-
-    // Use RocksDB backend because it is the default.
-    val suite = new RocksDBBackendHistoryServerSuite
-    FileUtils.deleteDirectory(suite.getExpRoot)
-    suite.getExpRoot.mkdirs()
-    try {
-      suite.init()
-      suite.cases.foreach { case (name, path) =>
-        suite.generateExpectation(name, path)
-      }
-    } finally {
-      suite.stop()
-    }
-  }
 
   def getContentAndCode(url: URL): (Int, Option[String], Option[String]) = {
     val (code, in, errString) = connectAndGetInputStream(url)
@@ -808,6 +806,17 @@ object FakeAuthFilter {
   val FAKE_HTTP_USER = "HTTP_USER"
 }
 
+// scalastyle:off line.size.limit
+/**
+ * Test suite for the History Server using LevelDB as the event log storage backend.
+ * Extends HistoryServerSuite and focuses on validating LevelDB-specific behaviors.
+ *
+ * To generate golden files for this backend:
+ * {{{
+ *   SPARK_GENERATE_GOLDEN_FILES=1 build/sbt "core/testOnly org.apache.spark.deploy.history.LevelDBBackendHistoryServerSuite"
+ * }}}
+ */
+// scalastyle:on line.size.limit
 @WebBrowserTest
 @ExtendedLevelDBTest
 class LevelDBBackendHistoryServerSuite extends HistoryServerSuite {
@@ -815,6 +824,17 @@ class LevelDBBackendHistoryServerSuite extends HistoryServerSuite {
     HybridStoreDiskBackend.LEVELDB
 }
 
+// scalastyle:off line.size.limit
+/**
+ * Test suite for the History Server using RocksDB as the event log storage backend.
+ * Extends HistoryServerSuite and focuses on validating RocksDB-specific behaviors.
+ *
+ * To generate golden files for this backend:
+ * {{{
+ *   SPARK_GENERATE_GOLDEN_FILES=1 build/sbt "core/testOnly org.apache.spark.deploy.history.RocksDBBackendHistoryServerSuite"
+ * }}}
+ */
+// scalastyle:on line.size.limit
 @WebBrowserTest
 class RocksDBBackendHistoryServerSuite extends HistoryServerSuite {
   override protected def diskBackend: History.HybridStoreDiskBackend.Value =


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org