Hi, Matthias,

Thanks for the review!

I have updated the KIP, please look again.


Thanks.


---
Vito

On Thu, Apr 19, 2018 at 9:58 PM, Matthias J. Sax <matth...@confluent.io>
wrote:

> 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
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >
>
>

Reply via email to