You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Guichard Desrosiers (Jira)" <ji...@apache.org> on 2026/05/27 14:24:00 UTC

[jira] [Updated] (DAFFODIL-3082) Make GZIP layer compression level configurable

     [ https://issues.apache.org/jira/browse/DAFFODIL-3082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Guichard Desrosiers updated DAFFODIL-3082:
------------------------------------------
    Description: 
Current gzip layer tests use the default compression level(level 6), but that yields different output between classic zlib vs zlib-ng for the same output sometimes. Setting the default level to 9 instead yields deterministic output, but level 9 is slow and may not reflect typical DFDL use. Make the gzip compression level configurable via layer parameters, with a default of -1 to use the JDK/zlib default, and allow tests to set a deterministic level when needed.

Some JDK distributions (e.g., Temurin) bundle their own zlib implementation with {{{}java.util.zip{}}}, using the classic stock zlib, while others link to the system zlib, which may be stock zlib or zlib-ng depending on the OS. With default compression, stock zlib and zlib-ng produce byte-different gzip output for the same input. A configurable level (e.g., 0 or 9) lets users choose a compression level that yields more deterministic output across different JDK/zlib combinations when necessary.

  was:
Current gzip layer tests use a fixed compression level for deterministic output, but level 9 is slow and may not reflect typical DFDL use. Make the gzip compression level configurable via layer parameters, with a default of -1 to use the JDK/zlib default, and allow tests to set a deterministic level when needed.

Some JDK distributions (e.g., Temurin) bundle their own zlib implementation with {{{}java.util.zip{}}}, using the classic stock zlib, while others link to the system zlib, which may be stock zlib or zlib-ng depending on the OS. With default compression, stock zlib and zlib-ng produce byte-different gzip output for the same input. A configurable level (e.g., 0 or 9) lets users choose a compression level that yields more deterministic output across different JDK/zlib combinations when necessary.


> Make GZIP layer compression level configurable
> ----------------------------------------------
>
>                 Key: DAFFODIL-3082
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-3082
>             Project: Daffodil
>          Issue Type: New Feature
>          Components: Back End
>            Reporter: Guichard Desrosiers
>            Assignee: Guichard Desrosiers
>            Priority: Major
>
> Current gzip layer tests use the default compression level(level 6), but that yields different output between classic zlib vs zlib-ng for the same output sometimes. Setting the default level to 9 instead yields deterministic output, but level 9 is slow and may not reflect typical DFDL use. Make the gzip compression level configurable via layer parameters, with a default of -1 to use the JDK/zlib default, and allow tests to set a deterministic level when needed.
> Some JDK distributions (e.g., Temurin) bundle their own zlib implementation with {{{}java.util.zip{}}}, using the classic stock zlib, while others link to the system zlib, which may be stock zlib or zlib-ng depending on the OS. With default compression, stock zlib and zlib-ng produce byte-different gzip output for the same input. A configurable level (e.g., 0 or 9) lets users choose a compression level that yields more deterministic output across different JDK/zlib combinations when necessary.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)