From dev-return-95695-archive-asf-public=cust-asf.ponee.io@kafka.apache.org Mon Jul 2 05:03:43 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 10FB5180654 for ; Mon, 2 Jul 2018 05:03:42 +0200 (CEST) Received: (qmail 56712 invoked by uid 500); 2 Jul 2018 03:03:41 -0000 Mailing-List: contact dev-help@kafka.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kafka.apache.org Delivered-To: mailing list dev@kafka.apache.org Received: (qmail 56701 invoked by uid 99); 2 Jul 2018 03:03:40 -0000 Received: from ui-eu-01.ponee.io (HELO localhost) (176.9.59.70) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Jul 2018 03:03:40 +0000 X-Mailer: LuaSocket 3.0-rc1 Message-ID: Date: Mon, 02 Jul 2018 03:03:39 -0000 Subject: Re: [DISCUSS] KIP-326: Schedulable KTable as Graph source Content-Type: text/plain; charset=utf-8 From: flaviostutz@gmail.com x-ponymail-agent: PonyMail Composer/0.3 To: References: <82bf868d-3a97-03d7-1f35-8e335a1a51b0@confluent.io> In-Reply-To: <82bf868d-3a97-03d7-1f35-8e335a1a51b0@confluent.io> x-ponymail-sender: afa2421c8c3d7d179970b20f4428981e9cdef15b MIME-Version: 1.0 For what I understood, that KIP is related to how KStreams will handle KTable updates in Windowed scenarios to optimize resource usage. I couldn't see any specific relation to this KIP. Had you? -Flávio Stutz On 2018/06/29 18:14:46, "Matthias J. Sax" wrote: > Flavio, > > thanks for cleaning up the KIP number collision. > > With regard to KIP-328 > (https://cwiki.apache.org/confluence/display/KAFKA/KIP-328%3A+Ability+to+suppress+updates+for+KTables) > I am wondering how both relate to each other? > > Any thoughts? > > > -Matthias > > On 6/29/18 10:23 AM, flaviostutz@gmail.com wrote: > > Just copying a follow up from another thread to here (sorry about the mess): > > > > From: Guozhang Wang > > Subject: Re: [DISCUSS] KIP-323: Schedulable KTable as Graph source > > Date: 2018/06/25 22:24:17 > > List: dev@kafka.apache.org > > > > Flávio, thanks for creating this KIP. > > > > I think this "single-aggregation" use case is common enough that we should > > consider how to efficiently supports it: for example, for KSQL that's built > > on top of Streams, we've seen lots of query statements whose return is > > expected a single row indicating the "total aggregate" etc. See > > https://github.com/confluentinc/ksql/issues/430 for details. > > > > I've not read through https://issues.apache.org/jira/browse/KAFKA-6953, but > > I'm wondering if we have discussed the option of supporting it in a > > "pre-aggregate" manner: that is we do partial aggregates on parallel tasks, > > and then sends the partial aggregated value via a single topic partition > > for the final aggregate, to reduce the traffic on that single partition and > > hence the final aggregate workload. > > Of course, for non-commutative aggregates we'd probably need to provide > > another API in addition to aggregate, like the `merge` function for > > session-based aggregates, to let users customize the operations of merging > > two partial aggregates into a single partial aggregate. What's its pros and > > cons compared with the current proposal? > > > > > > Guozhang > > On 2018/06/26 18:22:27, Flávio Stutz wrote: > >> Hey, guys, I've just created a new KIP about creating a new DSL graph > >> source for realtime partitioned consolidations. > >> > >> We have faced the following scenario/problem in a lot of situations with > >> KStreams: > >> - Huge incoming data being processed by numerous application instances > >> - Need to aggregate different fields whose records span all topic > >> partitions (something like “total amount spent by people aged > 30 yrs” > >> when processing a topic partitioned by userid). > >> > >> The challenge here is to manage this kind of situation without any > >> bottlenecks. We don't need the “global aggregation” to be processed at each > >> incoming message. On a scenario of 500 instances, each handling 1k > >> messages/s, any single point of aggregation (single partitioned topics, > >> global tables or external databases) would create a bottleneck of 500k > >> messages/s for single threaded/CPU elements. > >> > >> For this scenario, it is possible to store the partial aggregations on > >> local stores and, from time to time, query those states and aggregate them > >> as a single value, avoiding bottlenecks. This is a way to create a "timed > >> aggregation barrier”. > >> > >> If we leverage this kind of built-in feature we could greatly enhance the > >> ability of KStreams to better handle the CAP Theorem characteristics, so > >> that one could choose to have Consistency over Availability when needed. > >> > >> We started this discussion with Matthias J. Sax here: > >> https://issues.apache.org/jira/browse/KAFKA-6953 > >> > >> If you want to see more, go to KIP-326 at: > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-326%3A+Schedulable+KTable+as+Graph+source > >> > >> -Flávio Stutz > >> > >