@Override
  public void validate(PipeParameterValidator validator) throws Exception {
    super.validate(validator);

    final PipeParameters parameters = validator.getParameters();
    compressionDeviation =
        parameters.getDoubleOrDefault(
            PipeProcessorConstant.PROCESSOR_SDT_COMPRESSION_DEVIATION_KEY,
            PipeProcessorConstant.PROCESSOR_SDT_COMPRESSION_DEVIATION_DEFAULT_VALUE);
    compressionMinTimeInterval =
        parameters.getLongOrDefault(
            PipeProcessorConstant.PROCESSOR_SDT_MIN_TIME_INTERVAL_KEY,
            PipeProcessorConstant.PROCESSOR_SDT_MIN_TIME_INTERVAL_DEFAULT_VALUE);
    compressionMaxTimeInterval =
        parameters.getLongOrDefault(
            PipeProcessorConstant.PROCESSOR_SDT_MAX_TIME_INTERVAL_KEY,
            PipeProcessorConstant.PROCESSOR_SDT_MAX_TIME_INTERVAL_DEFAULT_VALUE);

    validator
        .validate(
            compressionDeviation -> (Double) compressionDeviation >= 0,
            String.format(
                "%s must be >= 0, but got %s",
                PipeProcessorConstant.PROCESSOR_SDT_COMPRESSION_DEVIATION_KEY,
                compressionDeviation),
            compressionDeviation)
        .validate(
            compressionMinTimeInterval -> (Long) compressionMinTimeInterval >= 0,
            String.format(
                "%s must be >= 0, but got %s",
                PipeProcessorConstant.PROCESSOR_SDT_MIN_TIME_INTERVAL_KEY,
                compressionMinTimeInterval),
            compressionMinTimeInterval)
        .validate(
            compressionMaxTimeInterval -> (Long) compressionMaxTimeInterval >= 0,
            String.format(
                "%s must be >= 0, but got %s",
                PipeProcessorConstant.PROCESSOR_SDT_MAX_TIME_INTERVAL_KEY,
                compressionMaxTimeInterval),
            compressionMaxTimeInterval)
        .validate(
            minMaxPair -> (Long) minMaxPair[0] <= (Long) minMaxPair[1],
            String.format(
                "%s must be <= %s, but got %s and %s",
                PipeProcessorConstant.PROCESSOR_SDT_MIN_TIME_INTERVAL_KEY,
                PipeProcessorConstant.PROCESSOR_SDT_MAX_TIME_INTERVAL_KEY,
                compressionMinTimeInterval,
                compressionMaxTimeInterval),
            compressionMinTimeInterval,
            compressionMaxTimeInterval);
  }
The maximum time distance between two stored data points if current point time to the last
stored point time distance >= compressionMaxTimeInterval, current point will be stored
regardless of compression deviation
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/processor/downsampling/sdt/SwingingDoorTrendingSamplingProcessor.java