Thanks Sophie/Guozhang. Yeah I could have amended the KIP but it slipped my mind when Guozhang proposed this in the PR. Later on, the PR was merged and KIP was marked as adopted so I thought I will write a new one. I know the PR had been reopened now :p . I dont have much preference on a new KIP v/s the original one so anything is ok with me as well.
I agree with the INFO part. I will make that change. Regarding task level, from my understanding, since every task's buffer/cache size might be different so if a certain task might be overshooting the limits then the task level metric might help people to infer this. Also, thanks for the explanation Guozhang on why this should be a task level metric. What are your thoughts on this @Sophie? Thanks! Sagar. On Fri, Feb 4, 2022 at 4:47 AM Guozhang Wang <wangg...@gmail.com> wrote: > Thanks Sagar for proposing the KIP, and Sophie for sharing your thoughts. > Here're my 2c: > > I think I agree with Sophie for making the two metrics (both the added and > the newly proposed) on INFO level since we are always calculating them > anyways. Regarding the level of the cache-size though, I'm thinking a bit > different with you two: today we do not actually keep that caches on the > per-store level, but rather on the per-thread level, i.e. when the cache is > full we would flush not only on the triggering state store but also > potentially on other state stores as well of the task that thread owns. > This mechanism, in hindsight, is a bit weird and we have some discussions > about refactoring that in the future already. Personally I'd like to make > this new metric to be aligned with whatever our future design will be. > > In the long run if we would not have a static assignment from tasks to > threads, it may not make sense to keep a dedicated cache pool per thread. > Instead all tasks will be dynamically sharing the globally configured max > cache size (dynamically here means, we would not just divide the total size > by the num.tasks and then assign that to each task), and when a cache put > triggers the flushing because the sum now exceeds the global configured > value, we would potentially flush all the cached records for that task. If > this is the end stage, then I think keeping this metric at the task level > is good. > > > > Guozhang > > > > > On Thu, Feb 3, 2022 at 10:15 AM Sophie Blee-Goldman > <sop...@confluent.io.invalid> wrote: > > > Hey Sagar, thanks for the KIP! > > > > And yes, all metrics are considered part of the public API and thus > require > > a KIP to add (or modify, etc...) Although in this particular case, you > > could probably make a good case for just considering it as an update to > the > > original KIP which added the analogous metric `input-buffer-bytes-total`. > > For things like this that weren't considered during the KIP proposal but > > came up during the implementation or review, and are small changes that > > would have made sense to include in that KIP had they been thought of, > you > > can just send an update to the existing KIP's discussion and.or voting > > thread that explains what you want to add or modify and maybe a brief > > description why. > > > > It's always ok to make a new KIP when in doubt, but there are some cases > > where an update email is sufficient. If there are any concerns or > > suggestions that significantly expand the scope of the update, you can > > always go create a new KIP and move the discussion there. > > > > I'd say you can feel free to proceed in whichever way you'd prefer for > this > > new proposal -- it just needs to appear in some KIP somewhere, and have > > given the community thew opportunity to discuss and provide feedback on. > > > > On that note, I do have two suggestions: > > > > 1) since we need to measure the size of the cache (and the input > buffer(s) > > anyways, we may as well make `cache-size-bytes-total` -- and also the new > > input-buffer-bytes-total -- an INFO level metric. In general the more > > metrics the merrier, the only real reason for disabling some are if they > > have a performance impact or other cost that not everyone will want to > pay. > > In this case we're already computing the value of these metrics, so why > not > > expose it to the user as an INFO metric > > 2) I think it would be both more natural and easier to implement if this > > was a store-level metric. A single task could in theory contain multiple > > physical state store caches and we would have to roll them up to report > the > > size for the task as a whole. It's additional work just to lose some > > information that the user may want to have > > > > Let me know if anything here doesn't make sense or needs clarification. > And > > thanks for the quick followup to get this 2nd metric! > > > > -Sophie > > > > On Sat, Jan 29, 2022 at 4:27 AM Sagar <sagarmeansoc...@gmail.com> wrote: > > > > > Hi All, > > > > > > I would like to open a discussion thread on the following KIP: > > > > > > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=186878390 > > > > > > PS: This is about introducing a new metric and I am assuming that it > > > requires a KIP. If that isn't the case, I can close it. > > > > > > Thanks! > > > Sagar. > > > > > > > > -- > -- Guozhang >