private void setConf(Configuration conf) {
    this.minSlowDetectCount =
      conf.getInt(WAL_SLOW_DETECT_MIN_COUNT_KEY, DEFAULT_WAL_SLOW_DETECT_MIN_COUNT);
    this.slowDataTtl = conf.getLong(WAL_SLOW_DETECT_DATA_TTL_KEY, DEFAULT_WAL_SLOW_DETECT_DATA_TTL);
    this.slowPacketAckMs = conf.getLong(DATANODE_SLOW_PACKET_PROCESS_TIME_KEY,
      DEFAULT_DATANODE_SLOW_PACKET_PROCESS_TIME);
    this.minLengthForSpeedCheck =
      conf.getLong(DATANODE_PACKET_FLUSH_CHECK_SPEED_MIN_DATA_LENGTH_KEY,
        DEFAULT_DATANODE_PACKET_FLUSH_CHECK_SPEED_MIN_DATA_LENGTH);
    this.minPacketFlushSpeedKBs = conf.getDouble(DATANODE_SLOW_PACKET_FLUSH_MIN_SPEED_KEY,
      DEFAULT_DATANODE_SLOW_PACKET_FLUSH_MIN_SPEED);
  }
Check if the packet process time shows that the relevant datanode is a slow node.
@param datanodeInfo     the datanode that processed the packet
@param packetDataLen    the data length of the packet (in bytes)
@param processTimeMs    the process time (in ms) of the packet on the datanode,
@param lastAckTimestamp the last acked timestamp of the packet on another datanode
@param unfinished       if the packet is unfinished flushed to the datanode replicas
hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/monitor/StreamSlowMonitor.java