Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-2992

Trace log statements in the replica fetcher inner loop create large amounts of garbage

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 0.8.2.1, 0.9.0.0
    • 0.10.0.0
    • core
    • Centos 6, Java 1.8.0_20

    Description

      We're seeing some GC pause issues in production, and during our investigation found that the thunks created during invocation of three trace statements guarded in the attached PR were responsible for ~98% of all allocations by object count and ~90% by size. While I'm not sure that this was actually the cause of our issue, it seems prudent to avoid useless allocations in a tight loop.

      I realize that the trace() call does its own guarding internally, however it's insufficient to prevent allocation of the thunk. I can work on getting profiling results to attach here, but I used YourKit and the license has since expired.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ckolbeck@gmail.com Cory Kolbeck
              Gwen Shapira Gwen Shapira
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: