[
https://issues.apache.org/jira/browse/KAFKA-4851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15897714#comment-15897714
]
ASF GitHub Bot commented on KAFKA-4851:
---
GitHub user dguy opened a pull request:
https://github.com/apache/kafka/pull/2645
KAFKA-4851: only search available segments during Segments.segments(from,
to)
restrict the locating of segments in {{Segments#segments(..)}} to only the
segments that are currently available, i.e., rather than searching the hashmap
for many segments that don't exist.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/dguy/kafka session-windows-testing
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/kafka/pull/2645.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #2645
commit fca1a2277fbb7020c42e4e028e8ec03bed3a8335
Author: Damian Guy
Date: 2017-03-06T17:03:27Z
only search available segments
> SessionStore.fetch(key) is a performance bottleneck
> ---
>
> Key: KAFKA-4851
> URL: https://issues.apache.org/jira/browse/KAFKA-4851
> Project: Kafka
> Issue Type: Bug
> Components: streams
>Affects Versions: 0.10.2.0
>Reporter: Damian Guy
>Assignee: Damian Guy
> Fix For: 0.11.0.0
>
>
> When flushing the {{CachingSessionStore}} we need to search for the previous
> value for a session. This involves searching each open RocksDB segment. The
> code ends up doing a call {{Segments.segments(0, Long.MAX_VALUE)}} this
> results in approximately 3 million gets on a {{ConcurrentHashMap}} of which
> all but 3 of them will be hits.
> Change this code to restrict the segmentIds to search just to the available
> set.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)