Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.9
-
None
-
None
Description
Current tracing implementation has some redundant actions for no-op tracing SPI which have a negative impact on performance:
- GridNioTracerFilter added to communication SPI filters chain even if tracing is disabled.
- MTC.support/MTC.supportContinual methods in case of no-op span or null span return TracingSurrounding which equivalently does nothing (span.set(oldSpan) is redundant, since span.set(startSpan) was skipped for no-op or null span, and endRequired is always false. So, instead of creating new TracingSurrounding we can return null (correctly processed by try-with resource block) with the same effect and get rid of some code on the hot path.
- Sometimes we already have Span on hands and call to MTC.span() is redundant.