Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Above are the main behavior changes that we should expect with this KIP. To reiterate, the primary benefit of this KIP is a performance enhancement. In some topologies, records being sent could have a large proportion of no-ops which leads to increased traffic while at the same time, the extra records sent are of no value. This KIP intends to eliminate this flaw of Kafka Streams.

Metrics

It is also expected that we add some metrics which can count how many no-ops has been dropped. For that matter, even if we don't drop no-ops, we should at the very least record the number of no-ops that has been seen go through a particular processor. There is a strong motivation for doing so. Users sometimes do not know whether or not their Streams application is experiencing a lot of useless traffic. In some certain situations, users are already aware of such a problem, but in many other cases, it is possible that they do not know at all.

Therefore, we should add some metrics which will count the number of no-ops that each node has seen. This will be useful for measuring the true efficiency of their application. (Exact metrics reporting format is yet to be determined.)

Design Reasoning

With the current default model of emission, we are forwarding the processed results downstream regardless if  it has changed or not. After some discussion, there are a couple of points that I would like to emphasize:

...