You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Adrian Sandor (JIRA)" <ji...@apache.org> on 2007/11/08 18:24:50 UTC
[jira] Commented: (DIRMINA-428) Message priorities
[ 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 pending)
> - 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.