Hello.

Do you have any idea on Becket's Idea of new config format (example below)?

```
compression.config="gzip.compression.level=5, lz4.compression.level=17,
zstd.compression.level=22"
```

It requires some additional KIP for supporting new config format (map), but
it can significantly simplify the configuration with flexibility and
extensibility. If you prefer this way, I hope to carry the ball.

If not, please give me an opinion here or the voting thread.

Thanks,
Dongjin


On Fri, Jan 25, 2019 at 1:25 AM Dongjin Lee <dong...@apache.org> wrote:

> Hi Becket,
>
> Thank you for your opinion. Frankly, I have no strong opinion on
> configuration name. In this problem, I will follow the community's choice.
> (I like your idea in that it has a notion of 'scope' per compression codec.
> However, it should be implemented on top of new config type like Map; It
> will require another KIP as a prerequisite, but if the community prefer
> this way, I will take the task.)
>
> (One minor correction: the one who thought 'producer' compression config
> would cause a problem at broker was me, not Ismael - and Ismael reassured
> me there will be no problem with it.)
>
> To All,
>
> How about Becket's idea of 'compression.config' option?
>
> Best,
> Dongjin
>
> On Wed, Jan 23, 2019 at 1:16 PM Becket Qin <becket....@gmail.com> wrote:
>
>> Hi Dongjin,
>>
>> Thanks for the KIP and sorry for being a bit late on the discussion.
>>
>> It makes sense to expose the configuration for compression types. But I am
>> wondering if there is a better way to do that than what proposed in the
>> KIP. What I feel confusing is that we are effectively sharing the
>> configuration across different compression types, the meaning of the
>> configuration are actually kind of different depending on the compression
>> type. This will end up with issues like what Ismael has brought up
>> earlier.
>> Say if the broker has compression type of producer (this may result in
>> mixed compression type in the same topic), and for some reason the broker
>> needs to re-compress the topic (e.g. due to log compaction), a single
>> topic
>> level compression config may not work, because a valid compression level
>> for lz4 maybe invalid for gzip.
>>
>> One alternative I am thinking is to provide a "compression.config"
>> configuration, inside which it specifies configuration used by each
>> specific compression type as k-v pairs. The format could use some name
>> space as well. For example,
>>
>>
>> compression.config="gzip.compression.level=5,lz4.compression.level=17,zstd.compression.level=22".
>>
>> Each compression type will just pick whatever configuration they need from
>> the k-v pairs defined in this config.
>>
>> Besides clarity, some other benefits are:
>> 1. Extensibility, we don't have to add more configuration when we add new
>> compression types, or expose new config for a particular compression type.
>> 2. Even for the same config, different compression type may have different
>> terminologies. With the approach we can honor those terminologies instead
>> of shoehorning them into the same configuration name.
>>
>> What do you think?
>>
>> Thanks,
>>
>> Jiangjie (Becket) Qin
>>
>>
>>
>>
>>
>> On Wed, Jan 23, 2019 at 12:07 AM Dongjin Lee <dong...@apache.org> wrote:
>>
>> > Hello. I just fixed the draft implementation, with rebasing onto the
>> latest
>> > trunk. The KIP was also restored.
>> >
>> > Please have a look, and if there is no major problem, please vote to the
>> > voting thread. You know, KIP freeze for 2.2.0 is almost imminent.
>> >
>> > Thanks,
>> > Dongjin
>> >
>> > On Tue, Jan 22, 2019 at 1:04 AM Ismael Juma <ism...@juma.me.uk> wrote:
>> >
>> > > Thanks!
>> > >
>> > > Ismael
>> > >
>> > > On Mon, Jan 21, 2019 at 6:02 AM Dongjin Lee <dong...@apache.org>
>> wrote:
>> > >
>> > > > Hi Ismael,
>> > > >
>> > > > After reviewing
>> > > `LogValidator#validateMessagesAndAssignOffsetsCompressed`,
>> > > > yes, you are right. If source codec and target codec is identical
>> and
>> > the
>> > > > magic is above 0, the broker can do an in-place assignment, without
>> > > > recompressing. Sorry for my misunderstanding.
>> > > >
>> > > > Since we don't need `compression.[gzip,lz4,zstd].level` and
>> > > > `compression.[gzip,snappy,lz4].buffer.size` anymore, I will revert
>> > those
>> > > > changes and update the KIP with the recent discussions. I will
>> complete
>> > > it
>> > > > in 48 hours from now.
>> > > >
>> > > > Thanks,
>> > > > Dongjin
>> > > >
>> > > > On Mon, Jan 21, 2019 at 4:18 PM Dongjin Lee <dong...@apache.org>
>> > wrote:
>> > > >
>> > > > > I see. Let me have a check. If not needed, of course, we don't
>> have
>> > to
>> > > > > waste on configuration options.
>> > > > >
>> > > > > Since the KIP deadline is imminent, I just opened the voting
>> thread.
>> > > > Let's
>> > > > > continue the discussion here.
>> > > > >
>> > > > > Best,
>> > > > > Dongjin
>> > > > >
>> > > > > On Mon, Jan 21, 2019 at 1:30 AM Ismael Juma <ism...@juma.me.uk>
>> > wrote:
>> > > > >
>> > > > >> Hi Dongjin,
>> > > > >>
>> > > > >> When the compression type is "producer", then the broker doesn't
>> > > > >> recompress
>> > > > >> though. Thinking about it some more, there are some uncommon
>> cases
>> > > where
>> > > > >> recompression does happen (the old (and hopefully hardly used by
>> > now)
>> > > > >> message format == 0 and some edge cases), so it is a good point
>> you
>> > > > >> raised.
>> > > > >>
>> > > > >> It's a bit unfortunate to add so many topic configs for cases
>> that
>> > > > >> probably
>> > > > >> don't matter. That is, if you are using "producer" compression,
>> you
>> > > > >> probably don't need to configure these settings and can live with
>> > the
>> > > > >> defaults. Perhaps we should only support the topic config for the
>> > > cases
>> > > > >> where you are actually recompressing in the broker.
>> > > > >>
>> > > > >> What do you think? I'd be interested in other people's thoughts
>> too.
>> > > > >>
>> > > > >> Ismael
>> > > > >>
>> > > > >> On Sun, Jan 20, 2019 at 2:14 AM Dongjin Lee <dong...@apache.org>
>> > > wrote:
>> > > > >>
>> > > > >> > Hi Ismael,
>> > > > >> >
>> > > > >> > It seems like it needs more explanation. Here is the detailed
>> > > > reasoning.
>> > > > >> >
>> > > > >> > You know, topic and broker's 'compression.type' allows
>> > > 'uncompressed',
>> > > > >> > 'producer' with standard codecs (i.e., gzip, snappy, lz4,
>> zstd.)
>> > And
>> > > > >> this
>> > > > >> > configuration is used by the broker in the re-compressing
>> process
>> > > > after
>> > > > >> > offset assignment. After this feature, the new configs,
>> > > > >> 'compression.level'
>> > > > >> > and 'compression.buffer.size', also will be used in this
>> process.
>> > > > >> >
>> > > > >> > The problem arises when given topic's compression type
>> (whether it
>> > > was
>> > > > >> > inherited from broker's configuration or explicitly set) is
>> > > > 'producer.'
>> > > > >> > With this setting, the compression codec to be used is decided
>> by
>> > > the
>> > > > >> > producer client. Since there is no way to restore the
>> compression
>> > > > level
>> > > > >> and
>> > > > >> > buffer size from the message, we can take the following
>> > strategies:
>> > > > >> >
>> > > > >> > 1. Just use given 'compression.level' and
>> > 'compression.buffer.size'
>> > > > >> > settings.
>> > > > >> >
>> > > > >> > It will cause so many errors. Let's imagine the case of topic's
>> > > > >> > configuration is { compression.type=producer,
>> > compression.level=10,
>> > > > >> > compression.buffer.size=8192 }. In this case, all producers
>> with
>> > > gzip
>> > > > or
>> > > > >> > lz4 compressed messages will result in an error. (gzip doesn't
>> > allow
>> > > > >> > compression level 10, and lz4 also for a buffer size of 8192.)
>> > > > >> >
>> > > > >> > 2. Extend the message format to include compression
>> > configurations.
>> > > > >> >
>> > > > >> > With this strategy, we need to change the message format -
>> it's a
>> > > too
>> > > > >> big
>> > > > >> > change.
>> > > > >> >
>> > > > >> > 3. If topic's compression.type is 'producer', use the default
>> > > > >> configuration
>> > > > >> > for the given codec.
>> > > > >> >
>> > > > >> > With this strategy, allowing fine-grained compression
>> > configuration
>> > > is
>> > > > >> > meaningless.
>> > > > >> >
>> > > > >> > For the above reasons, I think the only alternative is
>> providing
>> > > > options
>> > > > >> > that can be used when the topic's 'compression.type' is
>> > 'producer.'
>> > > In
>> > > > >> > other words, adding compression.[gzip, lz4, zstd].level and
>> > > > >> > compression.[gzip.snappy.lz4].buffer.size options - and it is
>> > what I
>> > > > >> did in
>> > > > >> > the last modification.
>> > > > >> >
>> > > > >> > (wait, the reasoning above should be included in the KIP in the
>> > > > rejected
>> > > > >> > alternatives section, isn't it?)
>> > > > >> >
>> > > > >> > Thanks,
>> > > > >> > Dongjin
>> > > > >> >
>> > > > >> > On Sun, Jan 20, 2019 at 2:33 AM Ismael Juma <ism...@juma.me.uk
>> >
>> > > > wrote:
>> > > > >> >
>> > > > >> > > Hi Dongjin,
>> > > > >> > >
>> > > > >> > > For topic level, you can only have a single compression type
>> so
>> > > the
>> > > > >> way
>> > > > >> > it
>> > > > >> > > was before was fine, right? The point you raise is how to set
>> > > broker
>> > > > >> > > defaults that vary depending on the compression type,
>> correct?
>> > > > >> > >
>> > > > >> > > Ismael
>> > > > >> > >
>> > > > >> > > On Mon, Jan 14, 2019 at 10:18 AM Dongjin Lee <
>> > dong...@apache.org>
>> > > > >> wrote:
>> > > > >> > >
>> > > > >> > > > I just realized that there was a missing hole in the KIP,
>> so I
>> > > > fixed
>> > > > >> > it.
>> > > > >> > > > The draft implementation will be updated soon.
>> > > > >> > > >
>> > > > >> > > > In short, the proposed change did not regard the case of
>> the
>> > > topic
>> > > > >> or
>> > > > >> > > > broker's 'compression.type' is 'producer'; in this case,
>> the
>> > > > broker
>> > > > >> has
>> > > > >> > > to
>> > > > >> > > > handle all kinds of the supported codec. So I added
>> additional
>> > > > >> options
>> > > > >> > > > (compression.[gzip,snappy,lz4, zstd].level,
>> > > > >> > compression.[gzip,snappy,lz4,
>> > > > >> > > > zstd].buffer.size) with handling routines.
>> > > > >> > > >
>> > > > >> > > > Please have a look when you are free.
>> > > > >> > > >
>> > > > >> > > > Thanks,
>> > > > >> > > > Dongjin
>> > > > >> > > >
>> > > > >> > > > On Mon, Jan 7, 2019 at 6:23 AM Dongjin Lee <
>> > dong...@apache.org>
>> > > > >> wrote:
>> > > > >> > > >
>> > > > >> > > > > Thanks for pointing out Ismael. It's now updated.
>> > > > >> > > > >
>> > > > >> > > > > Best,
>> > > > >> > > > > Dongjin
>> > > > >> > > > >
>> > > > >> > > > > On Mon, Jan 7, 2019 at 4:36 AM Ismael Juma <
>> > isma...@gmail.com
>> > > >
>> > > > >> > wrote:
>> > > > >> > > > >
>> > > > >> > > > >> Thanks Dongjin. One minor suggestion: we should mention
>> > that
>> > > > the
>> > > > >> > > broker
>> > > > >> > > > >> side configs are also topic configs (i.e. can be set
>> for a
>> > > > given
>> > > > >> > > topic).
>> > > > >> > > > >>
>> > > > >> > > > >> Ismael
>> > > > >> > > > >>
>> > > > >> > > > >> On Sun, Jan 6, 2019, 10:37 AM Dongjin Lee <
>> > > dong...@apache.org
>> > > > >> > wrote:
>> > > > >> > > > >>
>> > > > >> > > > >> > Happy new year.
>> > > > >> > > > >> >
>> > > > >> > > > >> > I just updated the title and contents of KIP and Jira
>> > > issue,
>> > > > >> with
>> > > > >> > > > >> updated
>> > > > >> > > > >> > draft implementation. Now both of compression level
>> and
>> > > > buffer
>> > > > >> > size
>> > > > >> > > > >> options
>> > > > >> > > > >> > are available to producer and broker configuration.
>> You
>> > can
>> > > > >> check
>> > > > >> > > the
>> > > > >> > > > >> > updated KIP from modified URL:
>> > > > >> > > > >> >
>> > > > >> > > > >> >
>> > > > >> > > > >> >
>> > > > >> > > > >>
>> > > > >> > > >
>> > > > >> > >
>> > > > >> >
>> > > > >>
>> > > >
>> > >
>> >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-390%3A+Allow+fine-grained+configuration+for+compression
>> > > > >> > > > >> >
>> > > > >> > > > >> > Please have a look when you are free.
>> > > > >> > > > >> >
>> > > > >> > > > >> > Thanks,
>> > > > >> > > > >> > Dongjin
>> > > > >> > > > >> >
>> > > > >> > > > >> > On Mon, Dec 3, 2018 at 12:50 AM Ismael Juma <
>> > > > isma...@gmail.com
>> > > > >> >
>> > > > >> > > > wrote:
>> > > > >> > > > >> >
>> > > > >> > > > >> > > The updated title sounds fine to me.
>> > > > >> > > > >> > >
>> > > > >> > > > >> > > Ismael
>> > > > >> > > > >> > >
>> > > > >> > > > >> > > On Sun, Dec 2, 2018, 5:25 AM Dongjin Lee <
>> > > > dong...@apache.org
>> > > > >> > > wrote:
>> > > > >> > > > >> > >
>> > > > >> > > > >> > > > Hi Ismael,
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > Got it. Your direction is perfectly reasonable. I
>> am
>> > > now
>> > > > >> > > updating
>> > > > >> > > > >> the
>> > > > >> > > > >> > KIP
>> > > > >> > > > >> > > > document and the implementation.
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > By allowing the buffer/block size to be
>> configurable,
>> > > it
>> > > > >> would
>> > > > >> > > be
>> > > > >> > > > >> > better
>> > > > >> > > > >> > > to
>> > > > >> > > > >> > > > update the title of the KIP like 'Allow
>> fine-grained
>> > > > >> > > configuration
>> > > > >> > > > >> for
>> > > > >> > > > >> > > > compression'. Is that right?
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > @Other committers:
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > Is there any other opinion on allowing the
>> > buffer/block
>> > > > >> size
>> > > > >> > to
>> > > > >> > > be
>> > > > >> > > > >> > > > configurable?
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > Thanks,
>> > > > >> > > > >> > > > Dongjin
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > On Thu, Nov 29, 2018 at 1:45 AM Ismael Juma <
>> > > > >> > ism...@juma.me.uk>
>> > > > >> > > > >> wrote:
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > > Hi Dongjin,
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > > > To clarify, I mean a broker topic config with
>> > regards
>> > > > to
>> > > > >> > point
>> > > > >> > > > 1.
>> > > > >> > > > >> As
>> > > > >> > > > >> > > you
>> > > > >> > > > >> > > > > know, compression can be done by the producer
>> > and/or
>> > > by
>> > > > >> the
>> > > > >> > > > >> broker.
>> > > > >> > > > >> > The
>> > > > >> > > > >> > > > > default is for the broker to just use whatever
>> > > > >> compression
>> > > > >> > was
>> > > > >> > > > >> used
>> > > > >> > > > >> > by
>> > > > >> > > > >> > > > the
>> > > > >> > > > >> > > > > producer, but this can be changed by the user
>> on a
>> > > per
>> > > > >> topic
>> > > > >> > > > >> basis.
>> > > > >> > > > >> > It
>> > > > >> > > > >> > > > > seems like it would make sense for the configs
>> to
>> > be
>> > > .
>> > > > >> > > > consistent
>> > > > >> > > > >> > > between
>> > > > >> > > > >> > > > > producer and broker.
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > > > For point 2, I haven't looked at the
>> > implementation,
>> > > > but
>> > > > >> we
>> > > > >> > > > could
>> > > > >> > > > >> do
>> > > > >> > > > >> > it
>> > > > >> > > > >> > > > in
>> > > > >> > > > >> > > > > the `CompressionType` enum by invoking the right
>> > > > >> constructor
>> > > > >> > > or
>> > > > >> > > > >> > > > retrieving
>> > > > >> > > > >> > > > > the default value via a constant (if defined).
>> > That's
>> > > > an
>> > > > >> > > > >> > implementation
>> > > > >> > > > >> > > > > detail and can be discussed in the PR. The more
>> > > general
>> > > > >> > point
>> > > > >> > > is
>> > > > >> > > > >> to
>> > > > >> > > > >> > > rely
>> > > > >> > > > >> > > > on
>> > > > >> > > > >> > > > > the library defaults instead of choosing one
>> > > ourselves.
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > > > For point 3, I'm in favour of doing that in this
>> > KIP.
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > > > Ismael
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > > > On Wed, Nov 28, 2018 at 7:01 AM Dongjin Lee <
>> > > > >> > > dong...@apache.org
>> > > > >> > > > >
>> > > > >> > > > >> > > wrote:
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > > > > Thank you Ismael, here are the answers:
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > *1. About topic config*
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > After some consideration, I concluded that
>> topic
>> > > > config
>> > > > >> > > > doesn't
>> > > > >> > > > >> > need
>> > > > >> > > > >> > > to
>> > > > >> > > > >> > > > > > support compression.level. Here is why: since
>> the
>> > > > >> > > compression
>> > > > >> > > > is
>> > > > >> > > > >> > > > > conducted
>> > > > >> > > > >> > > > > > by the client, the one who can select the best
>> > > > >> compression
>> > > > >> > > > >> level is
>> > > > >> > > > >> > > the
>> > > > >> > > > >> > > > > > client itself. Let us assume that the
>> compression
>> > > > >> level is
>> > > > >> > > set
>> > > > >> > > > >> at
>> > > > >> > > > >> > the
>> > > > >> > > > >> > > > > topic
>> > > > >> > > > >> > > > > > config level. In that case, there is a
>> > possibility
>> > > > that
>> > > > >> > the
>> > > > >> > > > >> > > compression
>> > > > >> > > > >> > > > > > level is not optimal for some producers.
>> > Actually,
>> > > > >> Kafka's
>> > > > >> > > go
>> > > > >> > > > >> > client
>> > > > >> > > > >> > > > also
>> > > > >> > > > >> > > > > > supports compression level functionality for
>> the
>> > > > >> producer
>> > > > >> > > > config
>> > > > >> > > > >> > > only.
>> > > > >> > > > >> > > > > > <
>> > > > >> https://github.com/Shopify/sarama/blob/master/config.go>
>> > > > >> > > > >> (wait,
>> > > > >> > > > >> > do
>> > > > >> > > > >> > > we
>> > > > >> > > > >> > > > > > need
>> > > > >> > > > >> > > > > > to add this reasoning in the KIP, rejected
>> > > > alternatives
>> > > > >> > > > >> section?)
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > *2. About default level*
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > As of current draft implementation, the
>> default
>> > > > >> > compression
>> > > > >> > > is
>> > > > >> > > > >> set
>> > > > >> > > > >> > on
>> > > > >> > > > >> > > > the
>> > > > >> > > > >> > > > > > CompressionType enum. Of course, changing this
>> > > > strategy
>> > > > >> > into
>> > > > >> > > > >> > relying
>> > > > >> > > > >> > > > on a
>> > > > >> > > > >> > > > > > method from the library to pick the default
>> > > > compression
>> > > > >> > > level
>> > > > >> > > > >> seems
>> > > > >> > > > >> > > > > > possible, like `GZIPBlockOutputStream` does.
>> In
>> > > this
>> > > > >> case,
>> > > > >> > > we
>> > > > >> > > > >> need
>> > > > >> > > > >> > to
>> > > > >> > > > >> > > > add
>> > > > >> > > > >> > > > > > similar wrapper class for zstd and modify lz4
>> the
>> > > > >> wrapper
>> > > > >> > > > also.
>> > > > >> > > > >> Add
>> > > > >> > > > >> > > to
>> > > > >> > > > >> > > > > > this, it seems like we need to explicitly
>> state
>> > > that
>> > > > we
>> > > > >> > > follow
>> > > > >> > > > >> the
>> > > > >> > > > >> > > > > default
>> > > > >> > > > >> > > > > > compression level of the codec in the
>> > > documentation.
>> > > > Is
>> > > > >> > this
>> > > > >> > > > >> what
>> > > > >> > > > >> > you
>> > > > >> > > > >> > > > > > intended?
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > *3. Whether to allow the buffer/block size to
>> be
>> > > > >> > > configurable*
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > Well, As of current draft implementation, the
>> lz4
>> > > > >> level is
>> > > > >> > > > >> > > implemented
>> > > > >> > > > >> > > > as
>> > > > >> > > > >> > > > > > block size; this is caused by my
>> misunderstanding
>> > > on
>> > > > >> lz4.
>> > > > >> > > > After
>> > > > >> > > > >> > > > reviewing
>> > > > >> > > > >> > > > > > lz4 today, I found that it also supports
>> > > compression
>> > > > >> level
>> > > > >> > > of
>> > > > >> > > > >> 1~16
>> > > > >> > > > >> > > > > > (default: 1), not block size. I will fix it in
>> > this
>> > > > >> > weekend
>> > > > >> > > by
>> > > > >> > > > >> > > updating
>> > > > >> > > > >> > > > > the
>> > > > >> > > > >> > > > > > wrapper class.
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > For the problem of the buffer/block size, I
>> have
>> > no
>> > > > >> strong
>> > > > >> > > > >> opinion.
>> > > > >> > > > >> > > If
>> > > > >> > > > >> > > > > the
>> > > > >> > > > >> > > > > > community needs it, I will do it all together.
>> > How
>> > > do
>> > > > >> you
>> > > > >> > > > think?
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > In short, it seems like I need to update the
>> KIP
>> > > > >> document
>> > > > >> > > for
>> > > > >> > > > >> issue
>> > > > >> > > > >> > > #1
>> > > > >> > > > >> > > > > and
>> > > > >> > > > >> > > > > > update the compression wrapper for issue #2,
>> #3.
>> > Is
>> > > > >> this
>> > > > >> > > okay?
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > Thanks,
>> > > > >> > > > >> > > > > > Dongjin
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > On Wed, Nov 28, 2018 at 12:34 AM Ismael Juma <
>> > > > >> > > > isma...@gmail.com
>> > > > >> > > > >> >
>> > > > >> > > > >> > > > wrote:
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > >  Thanks for the KIP, this is helpful. A few
>> > > > >> questions:
>> > > > >> > > > >> > > > > > >
>> > > > >> > > > >> > > > > > > 1. Have we considered whether we want to
>> allow
>> > a
>> > > > >> similar
>> > > > >> > > > topic
>> > > > >> > > > >> > > > config?
>> > > > >> > > > >> > > > > > > 2. Can we rely on a method from the library
>> to
>> > > pick
>> > > > >> the
>> > > > >> > > > >> default
>> > > > >> > > > >> > > > > > compression
>> > > > >> > > > >> > > > > > > level if compression.level is not set? We
>> do it
>> > > for
>> > > > >> gzip
>> > > > >> > > and
>> > > > >> > > > >> it
>> > > > >> > > > >> > > would
>> > > > >> > > > >> > > > > > seem
>> > > > >> > > > >> > > > > > > reasonable to do something similar for the
>> > other
>> > > > >> > > compression
>> > > > >> > > > >> > > > libraries.
>> > > > >> > > > >> > > > > > > 3. Do we want to allow the buffer/block
>> size to
>> > > be
>> > > > >> > > > >> configurable?
>> > > > >> > > > >> > > This
>> > > > >> > > > >> > > > > has
>> > > > >> > > > >> > > > > > > an impact on memory usage and people may
>> want
>> > to
>> > > > >> trade
>> > > > >> > > > >> > compression
>> > > > >> > > > >> > > > for
>> > > > >> > > > >> > > > > > > less/more memory in some cases. For example,
>> > the
>> > > > >> default
>> > > > >> > > for
>> > > > >> > > > >> LZ4
>> > > > >> > > > >> > is
>> > > > >> > > > >> > > > > 64KB
>> > > > >> > > > >> > > > > > > which is a bit high.
>> > > > >> > > > >> > > > > > >
>> > > > >> > > > >> > > > > > > Ismael
>> > > > >> > > > >> > > > > > >
>> > > > >> > > > >> > > > > > > On Sun, Nov 18, 2018, 2:07 PM Dongjin Lee <
>> > > > >> > > > dong...@apache.org
>> > > > >> > > > >> > > wrote:
>> > > > >> > > > >> > > > > > >
>> > > > >> > > > >> > > > > > > > Hello dev,
>> > > > >> > > > >> > > > > > > >
>> > > > >> > > > >> > > > > > > > I hope to initiate the discussion of
>> KIP-390:
>> > > Add
>> > > > >> > > producer
>> > > > >> > > > >> > option
>> > > > >> > > > >> > > > to
>> > > > >> > > > >> > > > > > > adjust
>> > > > >> > > > >> > > > > > > > compression level
>> > > > >> > > > >> > > > > > > > <
>> > > > >> > > > >> > > > > > > >
>> > > > >> > > > >> > > > > > >
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > >
>> > > > >> > > > >> >
>> > > > >> > > > >>
>> > > > >> > > >
>> > > > >> > >
>> > > > >> >
>> > > > >>
>> > > >
>> > >
>> >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-390%3A+Add+producer+option+to+adjust+compression+level
>> > > > >> > > > >> > > > > > > > >.
>> > > > >> > > > >> > > > > > > > All feedbacks will be highly appreciated.
>> > > > >> > > > >> > > > > > > >
>> > > > >> > > > >> > > > > > > > Best,
>> > > > >> > > > >> > > > > > > > Dongjin
>> > > > >> > > > >> > > > > > > >
>> > > > >> > > > >> > > > > > > > --
>> > > > >> > > > >> > > > > > > > *Dongjin Lee*
>> > > > >> > > > >> > > > > > > >
>> > > > >> > > > >> > > > > > > > *A hitchhiker in the mathematical world.*
>> > > > >> > > > >> > > > > > > >
>> > > > >> > > > >> > > > > > > > *github:  <http://goog_969573159/>
>> > > > >> > > github.com/dongjinleekr
>> > > > >> > > > >> > > > > > > > <http://github.com/dongjinleekr>linkedin:
>> > > > >> > > > >> > > > > > > kr.linkedin.com/in/dongjinleekr
>> > > > >> > > > >> > > > > > > > <http://kr.linkedin.com/in/dongjinleekr
>> > > > >> >slideshare:
>> > > > >> > > > >> > > > > > > > www.slideshare.net/dongjinleekr
>> > > > >> > > > >> > > > > > > > <http://www.slideshare.net/dongjinleekr>*
>> > > > >> > > > >> > > > > > > >
>> > > > >> > > > >> > > > > > >
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > --
>> > > > >> > > > >> > > > > > *Dongjin Lee*
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > > > *A hitchhiker in the mathematical world.*
>> > > > >> > > > >> > > > > > *github:  <http://goog_969573159/>
>> > > > >> github.com/dongjinleekr
>> > > > >> > > > >> > > > > > <https://github.com/dongjinleekr>linkedin:
>> > > > >> > > > >> > > > > kr.linkedin.com/in/dongjinleekr
>> > > > >> > > > >> > > > > > <https://kr.linkedin.com/in/dongjinleekr
>> > > > >speakerdeck:
>> > > > >> > > > >> > > > > > speakerdeck.com/dongjin
>> > > > >> > > > >> > > > > > <https://speakerdeck.com/dongjin>*
>> > > > >> > > > >> > > > > >
>> > > > >> > > > >> > > > >
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > --
>> > > > >> > > > >> > > > *Dongjin Lee*
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > > > *A hitchhiker in the mathematical world.*
>> > > > >> > > > >> > > > *github:  <http://goog_969573159/>
>> > > > github.com/dongjinleekr
>> > > > >> > > > >> > > > <https://github.com/dongjinleekr>linkedin:
>> > > > >> > > > >> > > kr.linkedin.com/in/dongjinleekr
>> > > > >> > > > >> > > > <https://kr.linkedin.com/in/dongjinleekr
>> > >speakerdeck:
>> > > > >> > > > >> > > > speakerdeck.com/dongjin
>> > > > >> > > > >> > > > <https://speakerdeck.com/dongjin>*
>> > > > >> > > > >> > > >
>> > > > >> > > > >> > >
>> > > > >> > > > >> >
>> > > > >> > > > >> >
>> > > > >> > > > >> > --
>> > > > >> > > > >> > *Dongjin Lee*
>> > > > >> > > > >> >
>> > > > >> > > > >> > *A hitchhiker in the mathematical world.*
>> > > > >> > > > >> > *github:  <http://goog_969573159/>
>> > github.com/dongjinleekr
>> > > > >> > > > >> > <https://github.com/dongjinleekr>linkedin:
>> > > > >> > > > >> kr.linkedin.com/in/dongjinleekr
>> > > > >> > > > >> > <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
>> > > > >> > > > >> > speakerdeck.com/dongjin
>> > > > >> > > > >> > <https://speakerdeck.com/dongjin>*
>> > > > >> > > > >> >
>> > > > >> > > > >>
>> > > > >> > > > >
>> > > > >> > > > >
>> > > > >> > > > > --
>> > > > >> > > > > *Dongjin Lee*
>> > > > >> > > > >
>> > > > >> > > > > *A hitchhiker in the mathematical world.*
>> > > > >> > > > > *github:  <http://goog_969573159/>
>> github.com/dongjinleekr
>> > > > >> > > > > <https://github.com/dongjinleekr>linkedin:
>> > > > >> > > > kr.linkedin.com/in/dongjinleekr
>> > > > >> > > > > <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
>> > > > >> > > > speakerdeck.com/dongjin
>> > > > >> > > > > <https://speakerdeck.com/dongjin>*
>> > > > >> > > > >
>> > > > >> > > >
>> > > > >> > > >
>> > > > >> > > > --
>> > > > >> > > > *Dongjin Lee*
>> > > > >> > > >
>> > > > >> > > > *A hitchhiker in the mathematical world.*
>> > > > >> > > > *github:  <http://goog_969573159/>github.com/dongjinleekr
>> > > > >> > > > <https://github.com/dongjinleekr>linkedin:
>> > > > >> > > kr.linkedin.com/in/dongjinleekr
>> > > > >> > > > <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
>> > > > >> > > > speakerdeck.com/dongjin
>> > > > >> > > > <https://speakerdeck.com/dongjin>*
>> > > > >> > > >
>> > > > >> > >
>> > > > >> >
>> > > > >> >
>> > > > >> > --
>> > > > >> > *Dongjin Lee*
>> > > > >> >
>> > > > >> > *A hitchhiker in the mathematical world.*
>> > > > >> > *github:  <http://goog_969573159/>github.com/dongjinleekr
>> > > > >> > <https://github.com/dongjinleekr>linkedin:
>> > > > >> kr.linkedin.com/in/dongjinleekr
>> > > > >> > <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
>> > > > >> > speakerdeck.com/dongjin
>> > > > >> > <https://speakerdeck.com/dongjin>*
>> > > > >> >
>> > > > >>
>> > > > >
>> > > > >
>> > > > > --
>> > > > > *Dongjin Lee*
>> > > > >
>> > > > > *A hitchhiker in the mathematical world.*
>> > > > > *github:  <http://goog_969573159/>github.com/dongjinleekr
>> > > > > <https://github.com/dongjinleekr>linkedin:
>> > > > kr.linkedin.com/in/dongjinleekr
>> > > > > <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
>> > > > speakerdeck.com/dongjin
>> > > > > <https://speakerdeck.com/dongjin>*
>> > > > >
>> > > >
>> > > >
>> > > > --
>> > > > *Dongjin Lee*
>> > > >
>> > > > *A hitchhiker in the mathematical world.*
>> > > > *github:  <http://goog_969573159/>github.com/dongjinleekr
>> > > > <https://github.com/dongjinleekr>linkedin:
>> > > kr.linkedin.com/in/dongjinleekr
>> > > > <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
>> > > > speakerdeck.com/dongjin
>> > > > <https://speakerdeck.com/dongjin>*
>> > > >
>> > >
>> >
>> >
>> > --
>> > *Dongjin Lee*
>> >
>> > *A hitchhiker in the mathematical world.*
>> > *github:  <http://goog_969573159/>github.com/dongjinleekr
>> > <https://github.com/dongjinleekr>linkedin:
>> kr.linkedin.com/in/dongjinleekr
>> > <https://kr.linkedin.com/in/dongjinleekr>speakerdeck:
>> > speakerdeck.com/dongjin
>> > <https://speakerdeck.com/dongjin>*
>> >
>>
>
>
> --
> *Dongjin Lee*
>
> *A hitchhiker in the mathematical world.*
> *github:  <http://goog_969573159/>github.com/dongjinleekr
> <https://github.com/dongjinleekr>linkedin: kr.linkedin.com/in/dongjinleekr
> <https://kr.linkedin.com/in/dongjinleekr>speakerdeck: speakerdeck.com/dongjin
> <https://speakerdeck.com/dongjin>*
>


-- 
*Dongjin Lee*

*A hitchhiker in the mathematical world.*
*github:  <http://goog_969573159/>github.com/dongjinleekr
<https://github.com/dongjinleekr>linkedin: kr.linkedin.com/in/dongjinleekr
<https://kr.linkedin.com/in/dongjinleekr>speakerdeck: speakerdeck.com/dongjin
<https://speakerdeck.com/dongjin>*

Reply via email to