Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Degradation - Performance Bug/Regression
-
Normal
-
Normal
-
Adhoc Test
-
All
-
None
-
Description
NoSpamLogger is used in hot logging paths to prevent logs being overrun. For that to be most effective the arguments to the logger need to be cheap to construct. During the internode messaging refactor CASSANDRA-15066, performance changes to BufferPool for CASSANDRA-14416
were accidentally reverted in the merge up from 3.11.
Reviewing other uses since, it looks like there are a few places where the arguments require some form of String building.
org.apache.cassandra.net.InboundSink#accept
org.apache.cassandra.net.InboundMessageHandler#processCorruptFrame
org.apache.cassandra.net.InboundMessageHandler.LargeMessage#deserialize
org.apache.cassandra.net.OutboundConnection#onOverloaded
org.apache.cassandra.utils.memory.BufferPool.GlobalPool#allocateMoreChunks
Formatting arguments should either be precomputed, or if expensive they should be computed after the decision on whether to noSpamLog has been made.
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-15764 Optimize logging with lazy log parameter evaluation
- Resolved
- is related to
-
CASSANDRA-15700 Performance regression on internode messaging
- Resolved
-
CASSANDRA-14416 Remove string formatting lines from hot path
- Resolved