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

                 Key: QPID-3028
                 URL: https://issues.apache.org/jira/browse/QPID-3028
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.8, 0.6
            Reporter: Robbie Gemmell
            Assignee: Robbie Gemmell
            Priority: Critical
             Fix For: 0.9


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.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to