It is a good idea to extend the Codec factory to offer more options.
However, I don't think adding
a `window_bits` parameter as `compression_level` is a good approach as it
does not apply to
some codecs.

IMO, the proposed new `Codec::Options` can be as simple as a
std::map<std::string, std::string>.
To avoid misuse, we need to formalize all acceptable keys somewhere and
specific codecs only
need to deal with config keys that they know.

WDYT?

Best,
Gang

On Sun, Apr 23, 2023 at 5:38 PM Yang, Yang10 <yang10.y...@intel.com> wrote:

> Hi,
>
> As discussed in this issue: https://github.com/apache/arrow/issues/35287,
> currently Arrow only supports one parameter: compression_level to be
> customized. We would like to make more compression parameters (such as
> window_bits) customizable when creating the Codec, given the variety of
> usage scenarios. As suggested by @kou, we may introduce a new options class
> such as Codec::Options to make the structure clear and easy to extend. But
> it may take some effort as this is more like a code structure refactor.
> Passing a parameter directly is another approach, easy to implement but may
> be hard to extend. So we would like some further discussion here. If you
> have any suggestion or comments, please share them on above issue or here.
> Thanks!
>
> Best,
> Yang
>

Reply via email to