Yeah, that's a good point.

Some of the operations might make sense on multiple partitions at once. Moving 
to a timestamp might apply to all partitions, moving backwards and forwards by 
N offsets might apply to all partitions.

However, moving to a specific offset ("set to offset 43") would most likely 
only make sense to one partition at time. It might make sense to *require* 
topic and partition, when moving to a specific offset.

-James

> On Feb 8, 2017, at 3:36 PM, Gwen Shapira <g...@confluent.io> wrote:
> 
> Just to clarify, we'll need to allow specifying topic and partition. I
> don't think we want this on ALL partitions at once.
> 
> On Wed, Feb 8, 2017 at 3:35 PM, Gwen Shapira <g...@confluent.io> wrote:
>> That's what I'd like to see. For example, suppose a Connect task fails
>> because it can't deserialize an event from a partition. Stop
>> connector, move offset forward, start connector. Boom!
>> 
>> 
>> On Wed, Feb 8, 2017 at 3:22 PM, Matthias J. Sax <matth...@confluent.io> 
>> wrote:
>>> I am not sure about --reset-plus and --reset-minus
>>> 
>>> Would this skip n messages forward/backward for each partitions?
>>> 
>>> 
>>> -Matthias
>>> 
>>> On 2/8/17 2:23 PM, Jorge Esteban Quilcate Otoya wrote:
>>>> Great. I think I got the idea. What about this options:
>>>> 
>>>> Scenarios:
>>>> 
>>>> 1. Current status
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1´
>>>> 
>>>> 2. To Datetime
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-datetime
>>>> 2017-01-01T00:00:00.000´
>>>> 
>>>> 3. To Period
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-period P2D´
>>>> 
>>>> 4. To Earliest
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-earliest´
>>>> 
>>>> 5. To Latest
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to-latest´
>>>> 
>>>> 6. Minus 'n' offsets
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-minus n´
>>>> 
>>>> 7. Plus 'n' offsets
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-plus n´
>>>> 
>>>> 8. To specific offset
>>>> 
>>>> ´kafka-consumer-groups.sh --reset-offset --group cg1 --reset-to x´
>>>> 
>>>> Scopes:
>>>> 
>>>> a. All topics used by Consumer Group
>>>> 
>>>> Don't specify --topics
>>>> 
>>>> b. Specific List of Topics
>>>> 
>>>> Add list of values in --topics t1,t2,tn
>>>> 
>>>> c. One Topic, all Partitions
>>>> 
>>>> Add one topic and no partitions values: --topic t1
>>>> 
>>>> d. One Topic, List of Partitions
>>>> 
>>>> Add one topic and partitions values: --topic t1 --partitions 0,1,2
>>>> 
>>>> About Reset Plan (JSON file):
>>>> 
>>>> I think is still valid to have the option to persist reset configuration as
>>>> a file, but I agree to give the option to run the tool without going down
>>>> to the JSON file.
>>>> 
>>>> Execution options:
>>>> 
>>>> 1. Without execution argument (No args):
>>>> 
>>>> Print out results (reset plan)
>>>> 
>>>> 2. With --execute argument:
>>>> 
>>>> Run reset process
>>>> 
>>>> 3. With --output argument:
>>>> 
>>>> Save result in a JSON format.
>>>> 
>>>> 4. Only with --execute option and --reset-file (path to JSON)
>>>> 
>>>> Reset based on file
>>>> 
>>>> 4. Only with --verify option and --reset-file (path to JSON)
>>>> 
>>>> Verify file values with current offsets
>>>> 
>>>> I think we can remove --generate-and-execute because is a bit clumsy.
>>>> 
>>>> With this options we will be able to execute with manual JSON 
>>>> configuration.
>>>> 
>>>> 
>>>> El mié., 8 feb. 2017 a las 22:43, Ben Stopford (<b...@confluent.io>)
>>>> escribió:
>>>> 
>>>>> Yes - using a tool like this to skip a set of consumer groups over a
>>>>> corrupt/bad message is definitely appealing.
>>>>> 
>>>>> B
>>>>> 
>>>>> On Wed, Feb 8, 2017 at 9:37 PM Gwen Shapira <g...@confluent.io> wrote:
>>>>> 
>>>>>> I like the --reset-to-earliest and --reset-to-latest. In general,
>>>>>> since the JSON route is the most challenging for users, we want to
>>>>>> provide a lot of ways to do useful things without going there.
>>>>>> 
>>>>>> Two things that can help:
>>>>>> 
>>>>>> 1. A lot of times, users want to skip few messages that cause issues
>>>>>> and continue. maybe just specifying the topic, partition and delta
>>>>>> will be better than having to find the offset and write a JSON and
>>>>>> validate the JSON etc.
>>>>>> 
>>>>>> 2. Thinking if there are other common use-cases that we can make easy
>>>>>> rather than just one generic but not very usable method.
>>>>>> 
>>>>>> Gwen
>>>>>> 
>>>>>> On Wed, Feb 8, 2017 at 3:25 AM, Jorge Esteban Quilcate Otoya
>>>>>> <quilcate.jo...@gmail.com> wrote:
>>>>>>> Thanks for the feedback!
>>>>>>> 
>>>>>>> @Onur, @Gwen:
>>>>>>> 
>>>>>>> Agree. Actually at the first draft I considered to have it inside
>>>>>>> ´kafka-consumer-groups.sh´, but I decide to propose it as a standalone
>>>>>> tool
>>>>>>> to describe it clearly and focus it on reset functionality.
>>>>>>> 
>>>>>>> But now that you mentioned, it does make sense to have it in
>>>>>>> ´kafka-consumer-groups.sh´. How would be a consistent way to introduce
>>>>>> it?
>>>>>>> 
>>>>>>> Maybe something like this:
>>>>>>> 
>>>>>>> ´kafka-consumer-groups.sh --reset-offset --generate --group cg1
>>>>> --topics
>>>>>> t1
>>>>>>> --reset-from 2017-01-01T00:00:00.000 --output plan.json´
>>>>>>> 
>>>>>>> ´kafka-consumer-groups.sh --reset-offset --verify --reset-json-file
>>>>>>> plan.json´
>>>>>>> 
>>>>>>> ´kafka-consumer-groups.sh --reset-offset --execute --reset-json-file
>>>>>>> plan.json´
>>>>>>> 
>>>>>>> ´kafka-consumer-groups.sh --reset-offset --generate-and-execute --group
>>>>>> cg1
>>>>>>> --topics t1 --reset-from 2017-01-01T00:00:00.000´
>>>>>>> 
>>>>>>> @Gwen:
>>>>>>> 
>>>>>>>> It looks exactly like the replica assignment tool
>>>>>>> 
>>>>>>> It was influenced by ;-) I use the generate-verify-execute process here
>>>>>> to
>>>>>>> make sure user will be aware of the result of this operation. At the
>>>>>>> beginning we considered only add a couple of options to Consumer Group
>>>>>>> Command:
>>>>>>> 
>>>>>>> --rewind-to-timestamp and --rewind-to-period
>>>>>>> 
>>>>>>> @Onur:
>>>>>>> 
>>>>>>>> You can actually get away with overriding while members of the group
>>>>>> are live
>>>>>>> with method 2 by using group information from DescribeGroupsRequest.
>>>>>>> 
>>>>>>> This means that we need to have Consumer Group stopped before executing
>>>>>> and
>>>>>>> start a new consumer internally to do this? Therefore, we won't be able
>>>>>> to
>>>>>>> consider executing reset when ConsumerGroup is active? (trying to
>>>>> relate
>>>>>> it
>>>>>>> with @Dong 5th question)
>>>>>>> 
>>>>>>> @Dong:
>>>>>>> 
>>>>>>>> Should we allow user to use wildcard to reset offset of all groups
>>>>> for a
>>>>>>> given topic as well?
>>>>>>> 
>>>>>>> I haven't thought about this scenario. Could be interesting. Following
>>>>>> the
>>>>>>> recommendation to add it into Consumer Group Command, in this case
>>>>> Group
>>>>>>> argument will be optional if there are only 1 topic. I think for
>>>>> multiple
>>>>>>> topic won't be that useful.
>>>>>>> 
>>>>>>>> Should we allow user to specify timestamp per topic partition in the
>>>>>> json
>>>>>>> file as well?
>>>>>>> 
>>>>>>> Don't think this could be a valid from the tool, but if Reset Plan is
>>>>>>> generated, and user want to set the offset for a specific partition to
>>>>>>> other offset (eventually based on another timestamp), and execute it,
>>>>> it
>>>>>>> will be up to her/him.
>>>>>>> 
>>>>>>>> Should the script take some credential file to make sure that this
>>>>>>> operation is authenticated given the potential impact of this
>>>>> operation?
>>>>>>> 
>>>>>>> Haven't tried to secure brokers yet, but the tool should support
>>>>>>> authorization if it's enabled in the broker.
>>>>>>> 
>>>>>>>> Should we provide constant to reset committed offset to
>>>>> earliest/latest
>>>>>>> offset of a partition, e.g. -1 indicates earliest offset and -2
>>>>> indicates
>>>>>>> latest offset.
>>>>>>> 
>>>>>>> I will go for something like ´--reset-to-earliest´ and
>>>>>> ´--reset-to-latest´
>>>>>>> 
>>>>>>>> Should we allow dynamic change of the comitted offset when consumer
>>>>> are
>>>>>>> running, such that consumer will seek to the newly committed offset and
>>>>>>> start consuming from there?
>>>>>>> 
>>>>>>> Not sure about this. I will recommend to keep it simple and ask user to
>>>>>>> stop consumers first. But I would considered it if the trade-offs are
>>>>>>> clear.
>>>>>>> 
>>>>>>> @Matthias
>>>>>>> 
>>>>>>> Added :). And thanks a lot for your help to define this KIP!
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> El mié., 8 feb. 2017 a las 7:47, Gwen Shapira (<g...@confluent.io>)
>>>>>>> escribió:
>>>>>>> 
>>>>>>>> As long as the CLI is a bit consistent? Like, not just adding 3
>>>>>>>> arguments and a JSON parser to the existing tool, right?
>>>>>>>> 
>>>>>>>> On Tue, Feb 7, 2017 at 10:29 PM, Onur Karaman
>>>>>>>> <onurkaraman.apa...@gmail.com> wrote:
>>>>>>>>> I think it makes sense to just add the feature to
>>>>>>>> kafka-consumer-groups.sh
>>>>>>>>> 
>>>>>>>>> On Tue, Feb 7, 2017 at 10:24 PM, Gwen Shapira <g...@confluent.io>
>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> Thanks for the KIP. I'm super happy about adding the capability.
>>>>>>>>>> 
>>>>>>>>>> I hate the interface, though. It looks exactly like the replica
>>>>>>>>>> assignment tool. A tool everyone loves so much that there are
>>>>>> multiple
>>>>>>>>>> projects, open and closed, that try to fix it.
>>>>>>>>>> 
>>>>>>>>>> Can we swap it with something that looks a bit more like the
>>>>> consumer
>>>>>>>>>> group tool? or the kafka streams reset tool? Consistency is helpful
>>>>>> in
>>>>>>>>>> such cases. I spent some time learning existing tools and learning
>>>>>> yet
>>>>>>>>>> another one is a deterrent.
>>>>>>>>>> 
>>>>>>>>>> Gwen
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Tue, Feb 7, 2017 at 6:43 PM, Jorge Esteban Quilcate Otoya
>>>>>>>>>> <quilcate.jo...@gmail.com> wrote:
>>>>>>>>>>> Hi all,
>>>>>>>>>>> 
>>>>>>>>>>> I would like to propose a KIP to Add a tool to Reset Consumer
>>>>> Group
>>>>>>>>>> Offsets.
>>>>>>>>>>> 
>>>>>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>>>>>>>>>> 122%3A+Add+a+tool+to+Reset+Consumer+Group+Offsets
>>>>>>>>>>> 
>>>>>>>>>>> Please, take a look at the proposal and share your feedback.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Jorge.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Gwen Shapira
>>>>>>>>>> Product Manager | Confluent
>>>>>>>>>> 650.450.2760 <(650)%20450-2760> <(650)%20450-2760>
>>>>> <(650)%20450-2760> | @gwenshap
>>>>>>>>>> Follow us: Twitter | blog
>>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Gwen Shapira
>>>>>>>> Product Manager | Confluent
>>>>>>>> 650.450.2760 <(650)%20450-2760> <(650)%20450-2760>
>>>>> <(650)%20450-2760> | @gwenshap
>>>>>>>> Follow us: Twitter | blog
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Gwen Shapira
>>>>>> Product Manager | Confluent
>>>>>> 650.450.2760 <(650)%20450-2760> <(650)%20450-2760> | @gwenshap
>>>>>> Follow us: Twitter | blog
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
>> 
>> 
>> --
>> Gwen Shapira
>> Product Manager | Confluent
>> 650.450.2760 | @gwenshap
>> Follow us: Twitter | blog
> 
> 
> 
> -- 
> Gwen Shapira
> Product Manager | Confluent
> 650.450.2760 | @gwenshap
> Follow us: Twitter | blog

Reply via email to