Thanks for clarification! That makes sense to me.

Can you update the KIP to make those suggestions explicit?


-Matthias

On 4/18/18 2:19 PM, vito jeng wrote:
> Matthias,
> 
> Thanks for the feedback!
> 
>> It's up to you to keep the details part in the KIP or not.
> 
> Got it!
> 
>> The (incomplete) question was, if we need `StateStoreFailException` or
>> if existing `InvalidStateStoreException` could be used? Do you suggest
>> that `InvalidStateStoreException` is not thrown at all anymore, but only
>> the new sub-classes (just to get a better understanding).
> 
> Yes. I suggest that `InvalidStateStoreException` is not thrown at all
> anymore,
> but only new sub-classes.
> 
>> Not sure what this sentence means:
>>> The internal exception will be wrapped as category exception finally.
>> Can you elaborate?
> 
> For example, `StreamThreadStateStoreProvider#stores()` will throw
> `StreamThreadNotRunningException`(internal exception).
> And then the internal exception will be wrapped as
> `StateStoreRetryableException` or `StateStoreFailException` during the
> `KafkaStreams.store()` and throw to the user.
> 
> 
>> Can you explain the purpose of the "internal exceptions". It's unclear
> to me atm why they are introduced.
> 
> Hmmm...the purpose of the "internal exceptions" is to distinguish between
> the different kinds of InvalidStateStoreException.
> The original idea is that we can distinguish different state store
> exception for
> different handling.
> But to be honest, I am not quite sure this is necessary. Maybe have
> some change during implementation.
> 
> Does it make sense?
> 
> 
> 
> 
> ---
> Vito
> 
> On Mon, Apr 16, 2018 at 5:59 PM, Matthias J. Sax <matth...@confluent.io>
> wrote:
> 
>> Thanks for the update Vito!
>>
>> It's up to you to keep the details part in the KIP or not.
>>
>>
>> The (incomplete) question was, if we need `StateStoreFailException` or
>> if existing `InvalidStateStoreException` could be used? Do you suggest
>> that `InvalidStateStoreException` is not thrown at all anymore, but only
>> the new sub-classes (just to get a better understanding).
>>
>>
>> Not sure what this sentence means:
>>
>>> The internal exception will be wrapped as category exception finally.
>>
>> Can you elaborate?
>>
>>
>> Can you explain the purpose of the "internal exceptions". It's unclear
>> to me atm why they are introduced.
>>
>>
>> -Matthias
>>
>> On 4/10/18 12:33 AM, vito jeng wrote:
>>> Matthias,
>>>
>>> Thanks for the review.
>>> I reply separately in the following sections.
>>>
>>>
>>> ---
>>> Vito
>>>
>>> On Sun, Apr 8, 2018 at 1:30 PM, Matthias J. Sax <matth...@confluent.io>
>>> wrote:
>>>
>>>> Thanks for updating the KIP and sorry for the long pause...
>>>>
>>>> Seems you did a very thorough investigation of the code. It's useful to
>>>> understand what user facing interfaces are affected.
>>>
>>> (Some parts might be even too detailed for a KIP.)
>>>>
>>>
>>> I also think too detailed. Especially the section `Changes in call
>> trace`.
>>> Do you think it should be removed?
>>>
>>>
>>>>
>>>> To summarize my current understanding of your KIP, the main change is to
>>>> introduce new exceptions that extend `InvalidStateStoreException`.
>>>>
>>>
>>> yep. Keep compatibility in this KIP is important things.
>>> I think the best way is that all new exceptions extend from
>>> `InvalidStateStoreException`.
>>>
>>>
>>>>
>>>> Some questions:
>>>>
>>>>  - Why do we need ```? Could `InvalidStateStoreException` be used for
>>>> this purpose?
>>>>
>>>
>>> Does this question miss some word?
>>>
>>>
>>>>
>>>>  - What the superclass of `StateStoreStreamThreadNotRunningException`
>>>> is? Should it be `InvalidStateStoreException` or
>> `StateStoreFailException`
>>>> ?
>>>>
>>>>  - Is `StateStoreClosed` a fatal or retryable exception ?
>>>>
>>>>
>>> I apologize for not well written parts. I tried to modify some code in
>> the
>>> recent period and modify the KIP.
>>> The modification is now complete. Please look again.
>>>
>>>
>>>>
>>>>
>>>> -Matthias
>>>>
>>>>
>>>> On 2/21/18 5:15 PM, vito jeng wrote:
>>>>> Matthias,
>>>>>
>>>>> Sorry for not response these days.
>>>>> I just finished it. Please have a look. :)
>>>>>
>>>>>
>>>>>
>>>>> ---
>>>>> Vito
>>>>>
>>>>> On Wed, Feb 14, 2018 at 5:45 AM, Matthias J. Sax <
>> matth...@confluent.io>
>>>>> wrote:
>>>>>
>>>>>> Is there any update on this KIP?
>>>>>>
>>>>>> -Matthias
>>>>>>
>>>>>> On 1/3/18 12:59 AM, vito jeng wrote:
>>>>>>> Matthias,
>>>>>>>
>>>>>>> Thank you for your response.
>>>>>>>
>>>>>>> I think you are right. We need to look at the state both of
>>>>>>> KafkaStreams and StreamThread.
>>>>>>>
>>>>>>> After further understanding of KafkaStreams thread and state store,
>>>>>>> I am currently rewriting the KIP.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ---
>>>>>>> Vito
>>>>>>>
>>>>>>> On Fri, Dec 29, 2017 at 4:32 AM, Matthias J. Sax <
>>>> matth...@confluent.io>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Vito,
>>>>>>>>
>>>>>>>> Sorry for this late reply.
>>>>>>>>
>>>>>>>> There can be two cases:
>>>>>>>>
>>>>>>>>  - either a store got migrated way and thus, is not hosted an the
>>>>>>>> application instance anymore,
>>>>>>>>  - or, a store is hosted but the instance is in state rebalance
>>>>>>>>
>>>>>>>> For the first case, users need to rediscover the store. For the
>> second
>>>>>>>> case, they need to wait until rebalance is finished.
>>>>>>>>
>>>>>>>> If KafkaStreams is in state ERROR, PENDING_SHUTDOWN, or NOT_RUNNING,
>>>>>>>> uses cannot query at all and thus they cannot rediscover or retry.
>>>>>>>>
>>>>>>>> Does this make sense?
>>>>>>>>
>>>>>>>> -Matthias
>>>>>>>>
>>>>>>>> On 12/20/17 12:54 AM, vito jeng wrote:
>>>>>>>>> Matthias,
>>>>>>>>>
>>>>>>>>> I try to clarify some concept.
>>>>>>>>>
>>>>>>>>> When streams state is REBALANCING, it means the user can just plain
>>>>>>>> retry.
>>>>>>>>>
>>>>>>>>> When streams state is ERROR or PENDING_SHUTDOWN or NOT_RUNNING, it
>>>>>> means
>>>>>>>>> state store migrated to another instance, the user needs to
>>>> rediscover
>>>>>>>> the
>>>>>>>>> store.
>>>>>>>>>
>>>>>>>>> Is my understanding correct?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ---
>>>>>>>>> Vito
>>>>>>>>>
>>>>>>>>> On Sun, Nov 5, 2017 at 12:30 AM, Matthias J. Sax <
>>>>>> matth...@confluent.io>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Thanks for the KIP Vito!
>>>>>>>>>>
>>>>>>>>>> I agree with what Guozhang said. The original idea of the Jira
>> was,
>>>> to
>>>>>>>>>> give different exceptions for different "recovery" strategies to
>> the
>>>>>>>> user.
>>>>>>>>>>
>>>>>>>>>> For example, if a store is currently recreated, a user just need
>> to
>>>>>> wait
>>>>>>>>>> and can query the store later. On the other hand, if a store go
>>>>>> migrated
>>>>>>>>>> to another instance, a user needs to rediscover the store instead
>>>> of a
>>>>>>>>>> "plain retry".
>>>>>>>>>>
>>>>>>>>>> Fatal errors might be a third category.
>>>>>>>>>>
>>>>>>>>>> Not sure if there is something else?
>>>>>>>>>>
>>>>>>>>>> Anyway, the KIP should contain a section that talks about this
>> ideas
>>>>>> and
>>>>>>>>>> reasoning.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -Matthias
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 11/3/17 11:26 PM, Guozhang Wang wrote:
>>>>>>>>>>> Thanks for writing up the KIP.
>>>>>>>>>>>
>>>>>>>>>>> Vito, Matthias: one thing that I wanted to figure out first is
>> what
>>>>>>>>>>> categories of errors we want to notify the users, if we only
>> wants
>>>> to
>>>>>>>>>>> distinguish fatal v.s. retriable then probably we should rename
>> the
>>>>>>>>>>> proposed StateStoreMigratedException / StateStoreClosedException
>>>>>>>> classes.
>>>>>>>>>>> And then from there we should list what are the possible internal
>>>>>>>>>>> exceptions ever thrown in those APIs in the call trace, and which
>>>>>>>>>>> exceptions should be wrapped to what others, and which ones
>> should
>>>> be
>>>>>>>>>>> handled without re-throwing, and which ones should not be wrapped
>>>> at
>>>>>>>> all
>>>>>>>>>>> but directly thrown to user's face.
>>>>>>>>>>>
>>>>>>>>>>> Guozhang
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Nov 1, 2017 at 11:09 PM, vito jeng <v...@is-land.com.tw>
>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I'd like to start discuss KIP-216:
>>>>>>>>>>>>
>>>>>>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>>>>>>>>>>>> 216%3A+IQ+should+throw+different+exceptions+for+
>> different+errors
>>>>>>>>>>>>
>>>>>>>>>>>> Please have a look.
>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>
>>>>>>>>>>>> ---
>>>>>>>>>>>> Vito
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to