You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Christofer Dutz <ch...@c-ware.de> on 2015/07/26 17:22:50 UTC

Changes to BlazeDS addressing memory consumption

Hi,


I am currently digging into some of the problems reported to BlazeDSs memory consumption. While there seems to be a real problem in the cleanup of clients, there is one other problem that could eventually help systems with a high throughput of messages.


Usually messages for a client are added to that clients message queue. Now sometimes there are messages that need to be delivered, but (at least im my usecases) most messages should be delivered, but if the server is under extreme load it wouldn't be that bad to have them dropped.


One possible solution possibly resolving some of the memory problems would be to change the queues to use weak references, that the VM can clean them up if memory is low. I would like to extend the Message interface with an method that controls if weak or strong references should be used. I was thinking of setting a default on the channel and allowing to explicitly override this default in the individual message.


What do you think? Would this option be ok for you?


Chris

AW: Changes to BlazeDS addressing memory consumption

Posted by Christofer Dutz <ch...@c-ware.de>.
I was proposing to set a default per queue, but allowing a fine controlled per-message override.

Chris



-----Ursprüngliche Nachricht-----
Von: Alex Harui [mailto:aharui@adobe.com] 
Gesendet: Sonntag, 26. Juli 2015 17:32
An: dev@flex.apache.org
Betreff: Re: Changes to BlazeDS addressing memory consumption

This is totally outside my area of expertise but just so I’m clear, are you proposing weak references or hard references on a per-message basis, or that the queue uses weak or strong for all of its messages?

If the former, that makes sense to me.  If the latter, I would be concerned that it would introduce a more random behavior, and there is no way to have one message be “required” when others aren’t required.

-Alex

On 7/26/15, 8:22 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:

>Hi,
>
>
>I am currently digging into some of the problems reported to BlazeDSs 
>memory consumption. While there seems to be a real problem in the 
>cleanup of clients, there is one other problem that could eventually 
>help systems with a high throughput of messages.
>
>
>Usually messages for a client are added to that clients message queue.
>Now sometimes there are messages that need to be delivered, but (at 
>least im my usecases) most messages should be delivered, but if the 
>server is under extreme load it wouldn't be that bad to have them dropped.
>
>
>One possible solution possibly resolving some of the memory problems 
>would be to change the queues to use weak references, that the VM can 
>clean them up if memory is low. I would like to extend the Message 
>interface with an method that controls if weak or strong references 
>should be used. I was thinking of setting a default on the channel and 
>allowing to explicitly override this default in the individual message.
>
>
>What do you think? Would this option be ok for you?
>
>
>Chris


Re: Changes to BlazeDS addressing memory consumption

Posted by Alex Harui <ah...@adobe.com>.
This is totally outside my area of expertise but just so I’m clear, are
you proposing weak references or hard references on a per-message basis,
or that the queue uses weak or strong for all of its messages?

If the former, that makes sense to me.  If the latter, I would be
concerned that it would introduce a more random behavior, and there is no
way to have one message be “required” when others aren’t required.

-Alex

On 7/26/15, 8:22 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:

>Hi,
>
>
>I am currently digging into some of the problems reported to BlazeDSs
>memory consumption. While there seems to be a real problem in the cleanup
>of clients, there is one other problem that could eventually help systems
>with a high throughput of messages.
>
>
>Usually messages for a client are added to that clients message queue.
>Now sometimes there are messages that need to be delivered, but (at least
>im my usecases) most messages should be delivered, but if the server is
>under extreme load it wouldn't be that bad to have them dropped.
>
>
>One possible solution possibly resolving some of the memory problems
>would be to change the queues to use weak references, that the VM can
>clean them up if memory is low. I would like to extend the Message
>interface with an method that controls if weak or strong references
>should be used. I was thinking of setting a default on the channel and
>allowing to explicitly override this default in the individual message.
>
>
>What do you think? Would this option be ok for you?
>
>
>Chris