Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-13411

Optimize tracing when NoopTracingSpi is used

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.9
    • Fix Version/s: 2.9
    • Component/s: None
    • Labels:
      None

      Description

      Current tracing implementation has some redundant actions for no-op tracing SPI which have a negative impact on performance:

      1. GridNioTracerFilter added to communication SPI filters chain even if tracing is disabled.
      2. 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.
      3. Sometimes we already have Span on hands and call to MTC.span() is redundant.

        Attachments

          Activity

            People

            • Assignee:
              alex_pl Aleksey Plekhanov
              Reporter:
              alex_pl Aleksey Plekhanov
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 0.5h
                0.5h