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

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 0.8.2.1, 0.9.0.0
    • Fix Version/s: 0.10.0.0
    • Component/s: core
    • Environment:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: