kafka/streams
Lucas Brutschy c034388a0a
KAFKA-14299: Avoid allocation & synchronization overhead in StreamThread loop (#12808)
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>
2022-11-08 17:55:37 +01:00
..
examples/src KAFKA-13152: KIP-770, cache size config deprecation (#12758) 2022-10-20 17:03:50 -07:00
quickstart MINOR: Get console output in quickstart examples (#12719) 2022-10-24 11:44:57 -04:00
src KAFKA-14299: Avoid allocation & synchronization overhead in StreamThread loop (#12808) 2022-11-08 17:55:37 +01:00
streams-scala MINOR: Update Scalafmt to latest version (#12475) 2022-09-12 10:05:15 -04:00
test-utils/src KAFKA-13152: KIP-770, cache size config deprecation (#12758) 2022-10-20 17:03:50 -07:00
upgrade-system-tests-10/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-11/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-20/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-21/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-22/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-23/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-24/src/test/java/org/apache/kafka/streams/tests MINOR: Add upgrade tests for FK joins (#12122) 2022-05-13 17:21:27 -07:00
upgrade-system-tests-25/src/test/java/org/apache/kafka/streams/tests MINOR: Add upgrade tests for FK joins (#12122) 2022-05-13 17:21:27 -07:00
upgrade-system-tests-26/src/test/java/org/apache/kafka/streams/tests MINOR: Add upgrade tests for FK joins (#12122) 2022-05-13 17:21:27 -07:00
upgrade-system-tests-27/src/test/java/org/apache/kafka/streams/tests MINOR: Add upgrade tests for FK joins (#12122) 2022-05-13 17:21:27 -07:00
upgrade-system-tests-28/src/test/java/org/apache/kafka/streams/tests MINOR: Add upgrade tests for FK joins (#12122) 2022-05-13 17:21:27 -07:00
upgrade-system-tests-30/src/test/java/org/apache/kafka/streams/tests MINOR: Add upgrade tests for FK joins (#12122) 2022-05-13 17:21:27 -07:00
upgrade-system-tests-31/src/test/java/org/apache/kafka/streams/tests MINOR: Add upgrade tests for FK joins (#12122) 2022-05-13 17:21:27 -07:00
upgrade-system-tests-32/src/test/java/org/apache/kafka/streams/tests KAFKA-13930: Add 3.2.0 Streams upgrade system tests (#12209) 2022-06-21 16:33:40 +02:00
upgrade-system-tests-0100/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-0101/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-0102/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
upgrade-system-tests-0110/src/test/java/org/apache/kafka/streams/tests KAFKA-12499: add transaction timeout verification (#10482) 2021-05-21 15:05:39 -07:00
.gitignore KAFKA-4848: Fix retryWithBackoff deadlock issue 2017-03-20 21:56:15 -07:00