mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adrian Sandor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DIRMINA-428) Message priorities
Date Thu, 08 Nov 2007 17:24:50 GMT

    [ https://issues.apache.org/jira/browse/DIRMINA-428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12541084

Adrian Sandor commented on DIRMINA-428:

Hi, sorry for the late reply. I haven't looked at the changes yet, but I'd like to comment
on what you said anyway.

> - at what point the Comparator/Comparable interface will be used (I think anything before
the writeRequestQueue will be useless)
> Before putting the message into writeRequestQueue. I think it's not useless because the
IoFilter implementation could maintain it's own writeRequestQueue

Well, that means the writeRequestQueue is effectively moved to the filter, and the original
queue [almost] becomes a no-op. So the sorting is still not done before the queue, just that
the queue changes its place. It can work, but I don't think it is very nice.

> I changed my mind. We could let user specify the internal write request queue implementation

Ok, so the queue stays in place. The question remains - how to implement the comparison?
As I understand it, at this point the message to send has to be in the form of a ByteBuffer,
and there's not much else to use in the WriteRequest. Or has it changed?

> Message priorities
> ------------------
>                 Key: DIRMINA-428
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-428
>             Project: MINA
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Adrian Sandor
>            Assignee: Trustin Lee
>             Fix For: 2.0.0-M1
> I would like MINA to support sending messages with different priorities, so that higher-priority
messages will get sent out first (in the order that they were added to the queue, if they
have the same priority)
> Here's how I think this could be implemented:
> - define different priorities; I suggest using numeric constants, such as LOWEST=0, LOW=25,
NORMAL=50, HIGH=75, HIGHEST=100, allowing any custom values from 0 to 100
> - add a priority field to WriteRequest, and implement Comparable using it
> - add a write(Object message, int priority) method to IoSession
> - make write(message) call write(message, NORMAL)
> - make the writeRequestQueue in the session implementations a priority queue, but one
that preserves the original order of "equal" elements
> - ensure that a higher priority message won't interrupt sending out another message (if
> - if desired, write an IoFilter that can manipulate the priority

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message