Validation of Parquet Reader Parameters During DB Startup

Details

Detail name Value
Changelog Number 26758
Type Improvement
Status Resolved
Fix Versions Exasol 2025.1.5, Exasol 2025.2.0
Resolution Date 2025-12-05

Background

Currently, during database startup, if invalid values (e.g., negative or zero) are provided for Parquet Reader parameters, the system automatically replaces these values with default values and proceeds. While this prevents the database from failing, it can lead to unpredictable behavior and performance issues since users may mistakenly assume their configured values were applied successfully.

Improvement

The behavior has been enhanced to enforce stricter validation for Parquet Reader parameters during database startup. Instead of silently falling back to default values, the system will now throw an EXAoperation error (visible via ConfD job log_collect, see log_collect) for invalid parameter values and abort the database startup. This change ensures users are alerted about misconfigured parameters and encourages proper configuration prior to database execution.

The error message will be printed on node 0 only to simplify visibility.

Parameter Name Validation Rule Valid Range Action on Invalid Value
etlParquetMaxConnections Throws exception if <= 0 Greater than 0 Throw error and abort DB startup.
Example: Invalid value for parameter - etlParquetMaxConnections: <Provided Value>. The value must be greater than 0. Please provide a valid number.
etlParquetMaxConcurrentReads Throws exception if <= 0 Greater than 0 Throw error and abort DB startup.
Example: Invalid value for parameter - etlParquetMaxConcurrentReads: <Provided Value>. The value must be greater than 0. Please provide a valid number.
etlParquetMaxBatchFetchSize Throws exception if <= 0 Greater than 0 Throw error and abort DB startup.
Example: Invalid value for parameter - etlParquetMaxBatchFetchSize: <Provided Value>. The value must be greater than 0. Please provide a valid number.
etlParquetMaxRows Throws exception if <= 0 Greater than 0 Throw error and abort DB startup.
Example: Invalid value for parameter - etlParquetMaxRows: <Provided Value>. The value must be greater than 0. Please provide a valid number.
etlParquetMaxRetry Throws exception if < 0 Greater than or equal to 0 Throw error and abort DB startup.
Example: Invalid value for parameter - etlParquetMaxRetry: <Provided Value>. The value must be greater than or equal to 0. Please provide a valid number.
etlParquetDebugMode Throws exception if < 0 Greater than or equal to 0 Throw error and abort DB startup.
Example: Invalid value for parameter - etlParquetDebugMode: <Provided Value>. The value must be greater than or equal to 0. Please provide a valid number.

Changed behavior

Previously, the database would silently replace invalid Parquet Reader parameter values with default values during startup, without notifying users, leading to potential issues or degraded performance. Now, the database strictly validates these parameters, throwing an error and halting startup if any value is invalid, requiring users to fix the configuration since fallback defaults are no longer applied. Clear error messages are provided, specifying the parameter, invalid value, expected range, and suggested fixes. To streamline debugging in distributed setups, validation and error reporting are limited to Node 0, reducing log clutter and simplifying issue identification.