private void mergeExecutionStats()

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());
          }
        }
      }
    }
  }