mirror of https://github.com/apache/kafka.git
The state updater code path introduced allocation and synchronization overhead by performing relatively heavy operations in every iteration of the StreamThread loop. This includes various allocations and acquiring locks for handling `removedTasks` and `failedTasks`, even if the corresponding queues are empty. This change introduces `hasRemovedTasks` and `hasExceptionsAndFailedTasks` in the `StateUpdater` interface that can be used to skip over any allocation or synchronization. The new methods do not require synchronization or memory allocation. This change increases throughput by ~15% in one benchmark. We extend existing unit tests to cover the slightly modified behavior. Reviewer: Bruno Cadonna <cadonna@apache.org> |
||
---|---|---|
.. | ||
examples/src | ||
quickstart | ||
src | ||
streams-scala | ||
test-utils/src | ||
upgrade-system-tests-10/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-11/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-20/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-21/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-22/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-23/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-24/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-25/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-26/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-27/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-28/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-30/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-31/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-32/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-0100/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-0101/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-0102/src/test/java/org/apache/kafka/streams/tests | ||
upgrade-system-tests-0110/src/test/java/org/apache/kafka/streams/tests | ||
.gitignore |