in pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/LeafStageTransferableBlockOperator.java [210:312]
private void mergeExecutionStats(@Nullable Map<String, String> executionStats) {
if (executionStats != null) {
for (Map.Entry<String, String> entry : executionStats.entrySet()) {
DataTable.MetadataKey key = DataTable.MetadataKey.getByName(entry.getKey());
if (key == null) {
LOGGER.debug("Skipping unknown execution stat: {}", entry.getKey());
continue;
}
switch (key) {
case UNKNOWN:
LOGGER.debug("Skipping unknown execution stat: {}", entry.getKey());
break;
case TABLE:
_statMap.merge(StatKey.TABLE, entry.getValue());
break;
case NUM_DOCS_SCANNED:
_statMap.merge(StatKey.NUM_DOCS_SCANNED, Long.parseLong(entry.getValue()));
break;
case NUM_ENTRIES_SCANNED_IN_FILTER:
_statMap.merge(StatKey.NUM_ENTRIES_SCANNED_IN_FILTER, Long.parseLong(entry.getValue()));
break;
case NUM_ENTRIES_SCANNED_POST_FILTER:
_statMap.merge(StatKey.NUM_ENTRIES_SCANNED_POST_FILTER, Long.parseLong(entry.getValue()));
break;
case NUM_SEGMENTS_QUERIED:
_statMap.merge(StatKey.NUM_SEGMENTS_QUERIED, Integer.parseInt(entry.getValue()));
break;
case NUM_SEGMENTS_PROCESSED:
_statMap.merge(StatKey.NUM_SEGMENTS_PROCESSED, Integer.parseInt(entry.getValue()));
break;
case NUM_SEGMENTS_MATCHED:
_statMap.merge(StatKey.NUM_SEGMENTS_MATCHED, Integer.parseInt(entry.getValue()));
break;
case NUM_CONSUMING_SEGMENTS_QUERIED:
_statMap.merge(StatKey.NUM_CONSUMING_SEGMENTS_QUERIED, Integer.parseInt(entry.getValue()));
break;
case MIN_CONSUMING_FRESHNESS_TIME_MS:
_statMap.merge(StatKey.MIN_CONSUMING_FRESHNESS_TIME_MS, Long.parseLong(entry.getValue()));
break;
case TOTAL_DOCS:
_statMap.merge(StatKey.TOTAL_DOCS, Long.parseLong(entry.getValue()));
break;
case NUM_GROUPS_LIMIT_REACHED:
_statMap.merge(StatKey.NUM_GROUPS_LIMIT_REACHED, Boolean.parseBoolean(entry.getValue()));
break;
case NUM_GROUPS_WARNING_LIMIT_REACHED:
_statMap.merge(StatKey.NUM_GROUPS_WARNING_LIMIT_REACHED, Boolean.parseBoolean(entry.getValue()));
break;
case TIME_USED_MS:
_statMap.merge(StatKey.EXECUTION_TIME_MS, Long.parseLong(entry.getValue()));
break;
case TRACE_INFO:
LOGGER.debug("Skipping trace info: {}", entry.getValue());
break;
case REQUEST_ID:
LOGGER.debug("Skipping request ID: {}", entry.getValue());
break;
case NUM_RESIZES:
_statMap.merge(StatKey.NUM_RESIZES, Integer.parseInt(entry.getValue()));
break;
case RESIZE_TIME_MS:
_statMap.merge(StatKey.RESIZE_TIME_MS, Long.parseLong(entry.getValue()));
break;
case THREAD_CPU_TIME_NS:
_statMap.merge(StatKey.THREAD_CPU_TIME_NS, Long.parseLong(entry.getValue()));
break;
case SYSTEM_ACTIVITIES_CPU_TIME_NS:
_statMap.merge(StatKey.SYSTEM_ACTIVITIES_CPU_TIME_NS, Long.parseLong(entry.getValue()));
break;
case RESPONSE_SER_CPU_TIME_NS:
_statMap.merge(StatKey.RESPONSE_SER_CPU_TIME_NS, Long.parseLong(entry.getValue()));
break;
case NUM_SEGMENTS_PRUNED_BY_SERVER:
_statMap.merge(StatKey.NUM_SEGMENTS_PRUNED_BY_SERVER, Integer.parseInt(entry.getValue()));
break;
case NUM_SEGMENTS_PRUNED_INVALID:
_statMap.merge(StatKey.NUM_SEGMENTS_PRUNED_INVALID, Integer.parseInt(entry.getValue()));
break;
case NUM_SEGMENTS_PRUNED_BY_LIMIT:
_statMap.merge(StatKey.NUM_SEGMENTS_PRUNED_BY_LIMIT, Integer.parseInt(entry.getValue()));
break;
case NUM_SEGMENTS_PRUNED_BY_VALUE:
_statMap.merge(StatKey.NUM_SEGMENTS_PRUNED_BY_VALUE, Integer.parseInt(entry.getValue()));
break;
case EXPLAIN_PLAN_NUM_EMPTY_FILTER_SEGMENTS:
LOGGER.debug("Skipping empty filter segments: {}", entry.getValue());
break;
case EXPLAIN_PLAN_NUM_MATCH_ALL_FILTER_SEGMENTS:
LOGGER.debug("Skipping match all filter segments: {}", entry.getValue());
break;
case NUM_CONSUMING_SEGMENTS_PROCESSED:
_statMap.merge(StatKey.NUM_CONSUMING_SEGMENTS_PROCESSED, Integer.parseInt(entry.getValue()));
break;
case NUM_CONSUMING_SEGMENTS_MATCHED:
_statMap.merge(StatKey.NUM_CONSUMING_SEGMENTS_MATCHED, Integer.parseInt(entry.getValue()));
break;
default: {
throw new IllegalArgumentException("Unhandled V1 execution stat: " + entry.getKey());
}
}
}
}
}