Przeglądaj źródła

AMBARI-11317. Avoid Client side merge sort on aggregator queries. (swagle)

Siddharth Wagle 10 lat temu
rodzic
commit
9e5647d99c

+ 2 - 1
ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/TimelineMetricClusterAggregatorMinute.java

@@ -94,10 +94,11 @@ public class TimelineMetricClusterAggregatorMinute extends AbstractTimelineAggre
     condition.setStatement(String.format(GET_METRIC_SQL,
       PhoenixTransactSQL.getNaiveTimeRangeHint(startTime, NATIVE_TIME_RANGE_DELTA),
       METRICS_RECORD_TABLE_NAME));
+    // Retaining order of the row-key avoids client side merge sort.
     condition.addOrderByColumn("METRIC_NAME");
     condition.addOrderByColumn("HOSTNAME");
-    condition.addOrderByColumn("APP_ID");
     condition.addOrderByColumn("SERVER_TIME");
+    condition.addOrderByColumn("APP_ID");
     return condition;
   }
 

+ 2 - 1
ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/aggregators/TimelineMetricHostAggregator.java

@@ -68,11 +68,12 @@ public class TimelineMetricHostAggregator extends AbstractTimelineAggregator {
     condition.setStatement(String.format(GET_METRIC_AGGREGATE_ONLY_SQL,
       PhoenixTransactSQL.getNaiveTimeRangeHint(startTime, nativeTimeRangeDelay),
       tableName));
+    // Retaining order of the row-key avoids client side merge sort.
     condition.addOrderByColumn("METRIC_NAME");
     condition.addOrderByColumn("HOSTNAME");
+    condition.addOrderByColumn("SERVER_TIME");
     condition.addOrderByColumn("APP_ID");
     condition.addOrderByColumn("INSTANCE_ID");
-    condition.addOrderByColumn("SERVER_TIME");
     return condition;
   }