Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7723

[0-10] Re-encoding of the 0-10 message during computation of updateStatsOnEnqueue causes performance slow down

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • qpid-java-broker-7.0.0
    • qpid-java-broker-7.0.0
    • Broker-J
    • None

    Description

      We are seeing a slowdown in the Java Broker for the 0-10 protocol since February 2017. Investigation with JProfiler is pointing to the introduction of the ring queue feature as being a possible cause. The performance drop is most apparent with on the transient profiles, where the drop is around ~2-3%.

      The problem is the new call to MessageMetaData_0_10#getStorableSize made from AbstractQueueEntryList#updateStatsOnEnqueue. On the 0-10 path, this causes the header delivery properties/message properties/non standard delivery properties to be encoded in order to compute the store size. This encoding step is separate to the encoding step that takes place when the message is sent to a consumer. The up shot is that the headers for a transient message that is not flown to disk are now encoded twice rather than once.

      Attachments

        1. hotspot_comparison.tar.bz2
          7.49 MB
          Keith Wall

        Activity

          People

            kwall Keith Wall
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: