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

Java broker uses excessive amounts of memory to service 0-10 connections

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 0.6, 0.8
    • 0.9
    • Broker-J
    • None

    Description

      The Java broker uses excessive amounts of memory to service 0-10 connections. There are a number of reasons for this, such as:

      • Use of an arbitrary 64000 element array in the Assembler to store incomplete incoming per-channel data.
      • Use of per-connection ThreadLocals for the BBDecoder in the Assembler interacting with the thread pool threads moving between connections, leading to an NxM number of BBDecoders in use.
      • Use of per-connection ThreadLocals for the BBEncoder in the Disassembler interacting with the thread pool threads moving between connections, leading to an NxM number of BBEncoders in use.
      • BBDecoder maintaining a hard reference to the last ByteBuffer it used.
      • The binary->String cache within BBDecoder maintaining a hard reference to the entire backing array for the network read buffer which contained the cached binary, rather than just the bit being cached.

      Attachments

        Activity

          People

            andrew.kennedy Andrew Kennedy
            robbie Robbie Gemmell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: