Robbie Gemmell created PROTON-857:

             Summary: reduce memory usage for the TransportSession link handle 
                 Key: PROTON-857
             Project: Qpid Proton
          Issue Type: Improvement
          Components: proton-j
    Affects Versions: 0.10
            Reporter: Robbie Gemmell
            Assignee: Robbie Gemmell
             Fix For: 0.10

The TransportSession class currently maintains two 'maps' of [local|remote] 
handle->TransportLink using arrays of size handle-max + 1 (since we start from 
0 when using handles, just like array indexes). The handle-max value used to be 
1024 in proton-j but was recently changed to be 65536 in PROTON-844, allowing 
us to track 65537 handles. This change exposes the transports already somewhat 
inefficient storage of handles by requiring ~64x as much memory per open 
session, which in most cases wont use the extra capacity and indeed may often 
only need to use a single handle at a time (or worse, none, if a session isnt 
actually used for some weird reason).

The handle tracking should be updated to use a HashMap, in similar fashion to 
how the session channel numbers are tracked by the transport.

This message was sent by Atlassian JIRA

Reply via email to