[ https://issues.apache.org/jira/browse/KAFKA-6569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16368701#comment-16368701 ]
Kyle Ambroff-Kao commented on KAFKA-6569: ----------------------------------------- The logger name doesn't change for anything written from kafka.log.OffsetIndex, since the companion object overrides loggerName. However, messages logged from methods in kafka.log.AbstractIndex[K, V] now have the logger name "kafka.log.AbstractIndex$", where before they would be the class name of object (kafka.log.OffsetIndex). > Reflection in OffsetIndex and TimeIndex construction > ---------------------------------------------------- > > Key: KAFKA-6569 > URL: https://issues.apache.org/jira/browse/KAFKA-6569 > Project: Kafka > Issue Type: Bug > Components: core > Reporter: Kyle Ambroff-Kao > Assignee: Kyle Ambroff-Kao > Priority: Major > Attachments: after.png, before.png > > > kafka.log.AbstractIndex uses the Logging mixin to lazily initialize loggers > for any concrete type that inherits from it. This works great, except that > the LazyLogging trait uses reflection to compute the logger name. > When you have hundreds of thousands of log segments to load on startup the > extra cost adds up. > I've attached flame graphs from broker startup on a broker that has about > 12TB of log segments to load, and a second flame graph after changing > AbstractIndex to statically initialize a logger. -- This message was sent by Atlassian JIRA (v7.6.3#76005)