Qpid
  1. Qpid
  2. QPID-3028

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

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 0.6, 0.8
    • Fix Version/s: 0.9
    • Component/s: Java Broker
    • Labels:
      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.

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Andrew Kennedy
            Reporter:
            Robbie Gemmell
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development