Yes. Sorry about this mistake.
On 6/16/21 2:29 PM, Israel Ekpo wrote: > Thanks for clarifying that @Sophie it is in regards to KIP-633 > > On Wed, Jun 16, 2021 at 4:00 PM Sophie Blee-Goldman > <sop...@confluent.io.invalid> wrote: > >> Matthias, I'm guessing you meant to send this to the KIP-633 list? This is >> KIP-663 >> >> On Wed, Jun 16, 2021 at 12:37 PM Matthias J. Sax <mj...@apache.org> wrote: >> >>> Quick follow up. I did a small update to the KIP with regard to >>> https://issues.apache.org/jira/browse/KAFKA-12909 >>> >>> Israel, Sophie, and Guozhang did agree to this change. I don't think we >>> need to re-vote. >>> >>> Please let us know if there are any concerns. >>> >>> >>> -Matthias >>> >>> On 1/27/21 12:48 PM, Sophie Blee-Goldman wrote: >>>> Thanks Bruno, that sounds like a good addition. +1 >>>> >>>> On Wed, Jan 27, 2021 at 12:34 PM Bruno Cadonna <br...@confluent.io> >>> wrote: >>>> >>>>> Hi all, >>>>> >>>>> During the implementation, we notices that method removeStreamThread() >>>>> may block indefinitely when the stream thread chosen for removal is >>>>> blocked and cannot be shut down. Thus, we will add an overload that >>>>> takes a timeout. The newly added method will throw a TimeoutException, >>>>> when the timeout is exceeded. >>>>> >>>>> We updated the KIP accordingly. >>>>> >>>>> KIP: https://cwiki.apache.org/confluence/x/FDd4CQ >>>>> >>>>> Best, >>>>> Bruno >>>>> >>>>> On 30.09.20 13:51, Bruno Cadonna wrote: >>>>>> Thank you all for voting! >>>>>> >>>>>> This KIP is accepted with 3 binding +1 (Guozhang, John, Matthias). >>>>>> >>>>>> Best, >>>>>> Bruno >>>>>> >>>>>> On 29.09.20 22:24, Matthias J. Sax wrote: >>>>>>> +1 (binding) >>>>>>> >>>>>>> I am not super happy with the impact on the client state. For >>> example, I >>>>>>> don't understand why it's ok to scale out if we lose one thread out >> of >>>>>>> four, but why it's not ok to scale out if we lose one thread out of >>> one >>>>>>> (for this case, we would enter ERROR state and cannot add new >> threads >>>>>>> afterwards). >>>>>>> >>>>>>> However, this might be an issue for a follow up KIP. >>>>>>> >>>>>>> >>>>>>> -Matthias >>>>>>> >>>>>>> On 9/29/20 7:20 AM, John Roesler wrote: >>>>>>>> Thanks, Bruno, this sounds good to me. >>>>>>>> -John >>>>>>>> >>>>>>>> On Tue, Sep 29, 2020, at 03:13, Bruno Cadonna wrote: >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> I did two minor modifications to the KIP. >>>>>>>>> >>>>>>>>> - I removed the rather strict guarantee "Dead stream threads are >>>>>>>>> removed >>>>>>>>> from a Kafka Streams client at latest after the next call to >>>>>>>>> KafkaStreams#addStreamThread() or >> KafkaStreams#removeStreamThread() >>>>>>>>> following the transition to state DEAD." >>>>>>>>> Dead stream threads will be still removed, but the behavior will >> be >>>>>>>>> less >>>>>>>>> strict. >>>>>>>>> >>>>>>>>> - Added a sentence that states that the Kafka Streams client will >>>>>>>>> transit to ERROR if the last alive stream thread dies >> exceptionally. >>>>>>>>> This corresponds to the current behavior. >>>>>>>>> >>>>>>>>> I will not restart voting and keep the votes so far. >>>>>>>>> >>>>>>>>> Best, >>>>>>>>> Bruno >>>>>>>>> >>>>>>>>> On 22.09.20 01:19, John Roesler wrote: >>>>>>>>>> I’m +1 also. Thanks, Bruno! >>>>>>>>>> -John >>>>>>>>>> >>>>>>>>>> On Mon, Sep 21, 2020, at 17:08, Guozhang Wang wrote: >>>>>>>>>>> Thanks Bruno. I'm +1 on the KIP. >>>>>>>>>>> >>>>>>>>>>> On Mon, Sep 21, 2020 at 2:49 AM Bruno Cadonna < >> br...@confluent.io >>>> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> I would like to restart from zero the voting on KIP-663 that >>>>>>>>>>>> proposes to >>>>>>>>>>>> add methods to the Kafka Streams client to add and remove >> stream >>>>>>>>>>>> threads >>>>>>>>>>>> during execution. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-663%3A+API+to+Start+and+Shut+Down+Stream+Threads >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Matthias, if you are still +1, please vote again. >>>>>>>>>>>> >>>>>>>>>>>> Best, >>>>>>>>>>>> Bruno >>>>>>>>>>>> >>>>>>>>>>>> On 04.09.20 23:12, John Roesler wrote: >>>>>>>>>>>>> Hi Sophie, >>>>>>>>>>>>> >>>>>>>>>>>>> Uh, oh, it's never a good sign when the discussion moves >>>>>>>>>>>>> into the vote thread :) >>>>>>>>>>>>> >>>>>>>>>>>>> I agree with you, it seems like a good touch for >>>>>>>>>>>>> removeStreamThread() to return the name of the thread that >>>>>>>>>>>>> got removed, rather than a boolean flag. Maybe the return >>>>>>>>>>>>> value would be `null` if there is no thread to remove. >>>>>>>>>>>>> >>>>>>>>>>>>> If we go that way, I'd suggest that addStreamThread() also >>>>>>>>>>>>> return the name of the newly created thread, or null if no >>>>>>>>>>>>> thread can be created right now. >>>>>>>>>>>>> >>>>>>>>>>>>> I'm not completely sure if I think that callers of this >>>>>>>>>>>>> method would know exactly how many threads there are. Sure, >>>>>>>>>>>>> if a human being is sitting there looking at the metrics or >>>>>>>>>>>>> logs and decides to call the method, it would work out, but >>>>>>>>>>>>> I'd expect this kind of method to find its way into >>>>>>>>>>>>> automated tooling that reacts to things like current system >>>>>>>>>>>>> load or resource saturation. Those kinds of toolchains often >>>>>>>>>>>>> are part of a distributed system, and it's probably not that >>>>>>>>>>>>> easy to guarantee that the thread count they observe is >>>>>>>>>>>>> fully consistent with the number of threads that are >>>>>>>>>>>>> actually running. Therefore, an in-situ `int >>>>>>>>>>>>> numStreamThreads()` method might not be a bad idea. Then >>>>>>>>>>>>> again, it seems sort of optional. A caller can catch an >>>>>>>>>>>>> exception or react to a `null` return value just the same >>>>>>>>>>>>> either way. Having both add/remove methods behave similarly >>>>>>>>>>>>> is probably more valuable. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> -John >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Thu, 2020-09-03 at 12:15 -0700, Sophie Blee-Goldman >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> Hey, sorry for the late reply, I just have one minor >>>>>>>>>>>>>> suggestion. Since >>>>>>>>>>>> we >>>>>>>>>>>>>> don't >>>>>>>>>>>>>> make any guarantees about which thread gets removed or allow >>>>>>>>>>>>>> the user to >>>>>>>>>>>>>> specify, I think we should return either the index or full >> name >>>>>>>>>>>>>> of the >>>>>>>>>>>>>> thread >>>>>>>>>>>>>> that does get removed by removeThread(). >>>>>>>>>>>>>> >>>>>>>>>>>>>> I know you just updated the KIP to return true/false if there >>>>>>>>>>>> are/aren't any >>>>>>>>>>>>>> threads to be removed, but I think this would be more >>>>>>>>>>>>>> appropriate as an >>>>>>>>>>>>>> exception than as a return type. I think it's reasonable to >>>>> expect >>>>>>>>>>>> users to >>>>>>>>>>>>>> have some sense to how many threads are remaining, and not >> try >>>>>>>>>>>>>> to remove >>>>>>>>>>>>>> a thread when there is none left. To me, that indicates >>>>>>>>>>>>>> something wrong >>>>>>>>>>>>>> with the user application code and should be treated as an >>>>>>>>>>>>>> exceptional >>>>>>>>>>>> case. >>>>>>>>>>>>>> I don't think the same code clarify argument applies here as >> to >>>>>>>>>>>>>> the >>>>>>>>>>>>>> addStreamThread() case, as there's no reason for an >> application >>>>>>>>>>>>>> to be >>>>>>>>>>>>>> looping and retrying removeStreamThread() since if that >> fails, >>>>>>>>>>>>>> it's >>>>>>>>>>>> because >>>>>>>>>>>>>> there are no threads left and thus it will continue to always >>>>>>>>>>>>>> fail. And >>>>>>>>>>>> if >>>>>>>>>>>>>> the >>>>>>>>>>>>>> user actually wants to shut down all threads, they should >> just >>>>>>>>>>>>>> close the >>>>>>>>>>>>>> whole application rather than call removeStreamThread() in a >>>>> loop. >>>>>>>>>>>>>> >>>>>>>>>>>>>> While I generally think it should be straightforward for >> users >>>>>>>>>>>>>> to track >>>>>>>>>>>> how >>>>>>>>>>>>>> many stream threads they have running, maybe it would be nice >>>>>>>>>>>>>> to add >>>>>>>>>>>>>> a small utility method that does this for them. Something >> like >>>>>>>>>>>>>> >>>>>>>>>>>>>> // Returns the number of currently alive threads >>>>>>>>>>>>>> boolean runningStreamThreads(); >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Thu, Sep 3, 2020 at 7:41 AM Matthias J. Sax < >>> mj...@apache.org >>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> +1 (binding) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 9/3/20 6:16 AM, Bruno Cadonna wrote: >>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I would like to start the voting on KIP-663 that proposes >> to >>>>> add >>>>>>>>>>>> methods >>>>>>>>>>>>>>>> to the Kafka Streams client to add and remove stream >> threads >>>>>>>>>>>>>>>> during >>>>>>>>>>>>>>>> execution. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>> >>>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-663%3A+API+to+Start+and+Shut+Down+Stream+Threads >>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Best, >>>>>>>>>>>>>>>> Bruno >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> -- Guozhang >>>>>>>>>>> >>>>>>>>> >>>>> >>>> >>> >> >