Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15766

NoSpamLogger arguments building objects on hot paths

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Degradation - Performance Bug/Regression
    • Normal
    • Normal
    • Adhoc Test
    • All
    • None
    • Hide

      Just passing utests and dtests, assuming reviewed performance improvements are non-controversial. Shouldn't be any impact on documentation.

      Show
      Just passing utests and dtests, assuming reviewed performance improvements are non-controversial. Shouldn't be any impact on documentation.

    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

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            maedhroz Caleb Rackliffe Assign to me
            jmeredithco Jon Meredith
            Caleb Rackliffe
            Aleksey Yeschenko, Zhao Yang
            Votes:
            0 Vote for this issue
            Watchers:
            9 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 - 1h 50m
                1h 50m

                Slack

                  Issue deployment