Thanks for the explanation, that makes sense.

Guozhang


On Mon, Jun 25, 2018 at 2:28 PM, Matthias J. Sax <matth...@confluent.io>
wrote:

> The scenario I had I mind was, that KS is started in one thread while a
> second thread has a reference to the object to issue queries.
>
> If a query is issue before the "main thread" started KS, and the "query
> thread" knows that it will eventually get started, it can retry. On the
> other hand, if KS is in state PENDING_SHUTDOWN or DEAD, it is impossible
> to issue any query against it now or in the future and thus the error is
> not retryable.
>
>
> -Matthias
>
> On 6/25/18 10:15 AM, Guozhang Wang wrote:
> > I'm wondering if StreamThreadNotStarted could be merged into
> > StreamThreadNotRunning, because I think users' handling logic for the
> third
> > case would be likely the same as the second. Do you have some scenarios
> > where users may want to handle them differently?
> >
> > Guozhang
> >
> > On Sun, Jun 24, 2018 at 5:25 PM, Matthias J. Sax <matth...@confluent.io>
> > wrote:
> >
> >> Sorry to hear! Get well soon!
> >>
> >> It's not a big deal if the KIP stalls a little bit. Feel free to pick it
> >> up again when you find time.
> >>
> >>>>> Is `StreamThreadNotRunningException` really an retryable error?
> >>>>
> >>>> When KafkaStream state is REBALANCING, I think it is a retryable
> error.
> >>>>
> >>>> StreamThreadStateStoreProvider#stores() will throw
> >>>> StreamThreadNotRunningException when StreamThread state is not
> >> RUNNING. The
> >>>> user can retry until KafkaStream state is RUNNING.
> >>
> >> I see. If this is the intention, than I would suggest to have two (or
> >> maybe three) different exceptions:
> >>
> >>  - StreamThreadRebalancingException (retryable)
> >>  - StreamThreadNotRunning (not retryable -- thrown if in state
> >> PENDING_SHUTDOWN or DEAD
> >>  - maybe StreamThreadNotStarted (for state CREATED)
> >>
> >> The last one is tricky and could also be merged into one of the first
> >> two, depending if you want to argue that it's retryable or not. (Just
> >> food for though -- not sure what others think.)
> >>
> >>
> >>
> >> -Matthias
> >>
> >> On 6/22/18 8:06 AM, vito jeng wrote:
> >>> Matthias,
> >>>
> >>> Thank you for your assistance.
> >>>
> >>>> what is the status of this KIP?
> >>>
> >>> Unfortunately, there is no further progress.
> >>> About seven weeks ago, I was injured in sports. I had a broken wrist on
> >>> my left wrist.
> >>> Many jobs are affected, including this KIP and implementation.
> >>>
> >>>
> >>>> I just re-read it, and have a couple of follow up comments. Why do we
> >>>> discuss the internal exceptions you want to add? Also, do we really
> need
> >>>> them? Can't we just throw the correct exception directly instead of
> >>>> wrapping it later?
> >>>
> >>> I think you may be right. As I say in the previous:
> >>> "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."
> >>>
> >>> During the implementation, I also feel we maybe not need wrapper it.
> >>> We can just throw the correctly directly.
> >>>
> >>>
> >>>> Is `StreamThreadNotRunningException` really an retryable error?
> >>>
> >>> When KafkaStream state is REBALANCING, I think it is a retryable error.
> >>>
> >>> StreamThreadStateStoreProvider#stores() will throw
> >>> StreamThreadNotRunningException when StreamThread state is not
> RUNNING.
> >> The
> >>> user can retry until KafkaStream state is RUNNING.
> >>>
> >>>
> >>>> When would we throw an `StateStoreEmptyException`? The semantics is
> >>> unclear to me atm.
> >>>
> >>>> When the state is RUNNING, is `StateStoreClosedException` a retryable
> >>> error?
> >>>
> >>> These two comments will be answered in another mail.
> >>>
> >>>
> >>>
> >>> ---
> >>> Vito
> >>>
> >>> On Mon, Jun 11, 2018 at 8:12 AM, Matthias J. Sax <
> matth...@confluent.io>
> >>> wrote:
> >>>
> >>>> Vito,
> >>>>
> >>>> what is the status of this KIP?
> >>>>
> >>>> I just re-read it, and have a couple of follow up comments. Why do we
> >>>> discuss the internal exceptions you want to add? Also, do we really
> need
> >>>> them? Can't we just throw the correct exception directly instead of
> >>>> wrapping it later?
> >>>>
> >>>> When would we throw an `StateStoreEmptyException`? The semantics is
> >>>> unclear to me atm.
> >>>>
> >>>> Is `StreamThreadNotRunningException` really an retryable error?
> >>>>
> >>>> When the state is RUNNING, is `StateStoreClosedException` a retryable
> >>>> error?
> >>>>
> >>>> One more nits: ReadOnlyWindowStore got a new method #fetch(K key, long
> >>>> time); that should be added
> >>>>
> >>>>
> >>>> Overall I like the KIP but some details are still unclear. Maybe it
> >>>> might help if you open an PR in parallel?
> >>>>
> >>>>
> >>>> -Matthias
> >>>>
> >>>> On 4/24/18 8:18 AM, vito jeng wrote:
> >>>>> Hi, Guozhang,
> >>>>>
> >>>>> Thanks for the comment!
> >>>>>
> >>>>>
> >>>>>
> >>>>> Hi, Bill,
> >>>>>
> >>>>> I'll try to make some update to make the KIP better.
> >>>>>
> >>>>> Thanks for the comment!
> >>>>>
> >>>>>
> >>>>> ---
> >>>>> Vito
> >>>>>
> >>>>> On Sat, Apr 21, 2018 at 5:40 AM, Bill Bejeck <bbej...@gmail.com>
> >> wrote:
> >>>>>
> >>>>>> Hi Vito,
> >>>>>>
> >>>>>> Thanks for the KIP, overall it's a +1 from me.
> >>>>>>
> >>>>>> At this point, the only thing I would change is possibly removing
> the
> >>>>>> listing of all methods called by the user and the listing of all
> store
> >>>>>> types and focus on what states result in which exceptions thrown to
> >> the
> >>>>>> user.
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Bill
> >>>>>>
> >>>>>> On Fri, Apr 20, 2018 at 2:10 PM, Guozhang Wang <wangg...@gmail.com>
> >>>> wrote:
> >>>>>>
> >>>>>>> Thanks for the KIP Vito!
> >>>>>>>
> >>>>>>> I made a pass over the wiki and it looks great to me. I'm +1 on the
> >>>> KIP.
> >>>>>>>
> >>>>>>> About the base class InvalidStateStoreException itself, I'd
> actually
> >>>>>>> suggest we do not deprecate it but still expose it as part of the
> >>>> public
> >>>>>>> API, for people who do not want to handle these cases differently
> (if
> >>>> we
> >>>>>>> deprecate it then we are enforcing them to capture all three
> >> exceptions
> >>>>>>> one-by-one).
> >>>>>>>
> >>>>>>>
> >>>>>>> Guozhang
> >>>>>>>
> >>>>>>>
> >>>>>>> On Fri, Apr 20, 2018 at 9:14 AM, John Roesler <j...@confluent.io>
> >>>> wrote:
> >>>>>>>
> >>>>>>>> Hi Vito,
> >>>>>>>>
> >>>>>>>> Thanks for the KIP!
> >>>>>>>>
> >>>>>>>> I think it's much nicer to give callers different exceptions to
> tell
> >>>>>> them
> >>>>>>>> whether the state store got migrated, whether it's still
> >> initializing,
> >>>>>> or
> >>>>>>>> whether there's some unrecoverable error.
> >>>>>>>>
> >>>>>>>> In the KIP, it's typically not necessary to discuss
> non-user-facing
> >>>>>>> details
> >>>>>>>> such as what exceptions we will throw internally. The KIP is
> >> primarily
> >>>>>> to
> >>>>>>>> discuss public interface changes.
> >>>>>>>>
> >>>>>>>> You might consider simply removing all the internal details from
> the
> >>>>>> KIP,
> >>>>>>>> which will have the dual advantage that it makes the KIP smaller
> and
> >>>>>>> easier
> >>>>>>>> to agree on, as well as giving you more freedom in the internal
> >>>> details
> >>>>>>>> when it comes to implementation.
> >>>>>>>>
> >>>>>>>> I like your decision to have your refined exceptions extend
> >>>>>>>> InvalidStateStoreException to ensure backward compatibility. Since
> >> we
> >>>>>>> want
> >>>>>>>> to encourage callers to catch the more specific exceptions, and we
> >>>>>> don't
> >>>>>>>> expect to ever throw a raw InvalidStateStoreException anymore, you
> >>>>>> might
> >>>>>>>> consider adding the @Deprecated annotation to
> >>>>>> InvalidStateStoreException.
> >>>>>>>> This will gently encourage callers to migrate to the new exception
> >> and
> >>>>>>> open
> >>>>>>>> the possibility of removing InvalidStateStoreException entirely
> in a
> >>>>>>> future
> >>>>>>>> release.
> >>>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>> -John
> >>>>>>>>
> >>>>>>>> On Thu, Apr 19, 2018 at 8:58 AM, 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 `StateStoreStreamThreadNotRunni
> >>>>>>>> ngException`
> >>>>>>>>>>>>> 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
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> -- Guozhang
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >
> >
>
>


-- 
-- Guozhang

Reply via email to