Michael,

Increasing the offset retention period means that old consumers will use up
space in the __consumer_offsets topic and in the cache the brokers hold on
that topic. The cache is in memory, so if you churn consumer groups a lot
that could be problematic. The other issue is that booting new brokers
requires replaying the whole log to load the cache, and if it's larger then
that could be problematic.

Thanks

Tom Crayford
Heroku Kafka

On Wednesday, 4 May 2016, Michael Freeman <mikfree...@gmail.com> wrote:

> Hey Tom,
>                  Are there any details on the negative side effects of
> increasing the offset retention period? I'd like to increase it but want to
> be aware of the risks.
>
> Thanks
>
> Michael
>
> > On 4 May 2016, at 05:06, Tom Crayford <tcrayf...@heroku.com
> <javascript:;>> wrote:
> >
> > Jun,
> >
> > Yep, you got it. If there are no offset commits for 24h, then your offset
> > will disappear and be cleaned up. I think this behaviour is at least a
> > little suboptimal and surprising, but it does prevent a lot of issues
> that
> > arise when you rapidly add and remove consumer groups.
> >
> > I hope that helps!
> >
> > Tom Crayford,
> > Heroku Kafka
> >
> >> On Tue, May 3, 2016 at 7:45 PM, Jun MA <mj.saber1...@gmail.com
> <javascript:;>> wrote:
> >>
> >> I think I figured that out. Based on the explanation on
> >> http://www.slideshare.net/jjkoshy/offset-management-in-kafka <
> >> http://www.slideshare.net/jjkoshy/offset-management-in-kafka>,
> >> offsets.retention.minutes is used for clean up dead consumer group. It
> >> means if one consumer group hasn’t commit any offset for
> >> offsets.retention.minutes, kafka will clean up its offset, which make
> sense
> >> for my case.
> >>
> >> Thanks,
> >> Jun
> >>> On May 3, 2016, at 11:46 AM, Jun MA <mj.saber1...@gmail.com
> <javascript:;>> wrote:
> >>>
> >>> Thanks for your reply. I checked the offset topic and the cleanup
> policy
> >> is actually compact.
> >>>
> >>> Topic:__consumer_offsets      PartitionCount:50
> >> ReplicationFactor:3
> >>
> Configs:segment.bytes=104857600,cleanup.policy=compact,compression.type=uncompressed
> >>>
> >>> And I’m using 0.9.0.1 so the default config for log.cleaner.enable is
> >> true.
> >>> In this case theoretically I should not lose any offset, right?
> >>> I noticed that offsets.retention.minutes by default is 24hours, which
> is
> >> correlated to my offset becomes unknown, so I’m wondering if that is
> >> because of this config? Can someone explain more about this
> >> config(description: Log retention window for offsets topic) because I
> don’t
> >> understand what this does?
> >>>
> >>> Another related question is that how can I actually see the data of
> >> offset topic? I think by reading the actual data might help.
> >>>
> >>> Thanks,
> >>> Jun
> >>>
> >>>> On May 3, 2016, at 1:15 AM, Gerard Klijs <gerard.kl...@dizzit.com
> <javascript:;>
> >> <mailto:gerard.kl...@dizzit.com <javascript:;>>> wrote:
> >>>>
> >>>> Looks like it, you need to be sure the offset topic is using
> compaction,
> >>>> and the broker is set to enable compaction.
> >>>>
> >>>> On Tue, May 3, 2016 at 9:56 AM Jun MA <mj.saber1...@gmail.com
> <javascript:;> <mailto:
> >> mj.saber1...@gmail.com <javascript:;>>> wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> I’m using 0.9.0.1 new-consumer api. I noticed that after kafka cleans
> >> up
> >>>>> all old log segments(reach delete.retention time), I got unknown
> >> offset.
> >>>>>
> >>>>> bin/kafka-consumer-groups.sh --bootstrap-server server:9092
> >> --new-consumer
> >>>>> --group testGroup --describe
> >>>>> GROUP, TOPIC, PARTITION, CURRENT OFFSET, LOG END OFFSET, LAG, OWNER
> >>>>> testGroup, test, 0, unknown, 49, unknown, consumer-1_/10.32.241.2
> >>>>> testGroup, test, 1, unknown, 61, unknown, consumer-1_/10.32.241.2
> >>>>>
> >>>>> In this situation, I cannot consume anything using new-consumer java
> >>>>> driver if I disable auto-commit.
> >>>>> I think this happens because new-consumer driver stores offset in
> >> broker
> >>>>> as a topic(not in zookeeper), and after reaching delete.retention
> >> time, it
> >>>>> got deleted and becomes unknown. And since I disabled auto-commit, it
> >> can
> >>>>> never know where it is, then it cannot consume anything.
> >>>>>
> >>>>> Is this what happened here? What should I do in this situation?
> >>>>>
> >>>>> Thanks,
> >>>>> Jun
> >>
> >>
>

Reply via email to