Hi Trustee,

Thanks for the tip.  So does it mean, using the 3 messages/sec example,
something as simple as the code below ?

Hanson

     SocketConnector socketConnector =
                                             new SocketConnector();
     socketConnector.getFilterChain()
           .addLast("writeThrottleFilter",
                          new WriteThrottleFilter(333));

public class WriteThrottleFilter extends IoFilterAdapter
{
   private final long delayMillis;

   public WriteThrottleFilter(long delay) {
       this.delayMillis = delay;
   }

   @Override
   public void filterWrite(NextFilter nextFilter,
           IoSession session, ByteBuffer buf, Object marker) throws
InterruptedException
   {
       Thread.sleep(delayMillis);
       nextFilter.filterWrite( session, buf, marker );
   }
}

On 9/12/06, Trustin Lee <[EMAIL PROTECTED]> wrote:

---------- Forwarded message ----------
From: Trustin Lee <[EMAIL PROTECTED]>
Date: Sep 13, 2006 1:59 PM
Subject: Re: Controlling rate of writes in Mina 0.8.2
To: mina-dev@directory.apache.org

Hi Hanson,

On 9/13/06, Hanson Char <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> A quick question.  Is there an easy way in Mina 0.8.2 to control the
rate
> of
> physical network write operations to not exceeding a specific number of
> messages ?
>
> For example, can I say for a particular socket connection session Mina
> should write physically no more than 3 messages per second ?  Message
here
> means the argument that get passed to session.write(Object).
>
> AFAIK the session.write() is a logical asyn operation, and Mina
therefore
> reserves the right to buffer it underneath.  If so, controlling the rate
> of
> session.write() cannot be relied upon to control the rate of physical
> messages that get sent down the wire.
>
> Or am I mistaken ?


You are correct, but you can make session.write() a blocking operation by
inserting a filter which limits the write rate.  Please implement your
filter's filterWrite() to throttle the write request.

BTW this idea is nice.  Could you please create a JIRA issue for us so we
can resolve it someday and you can switch over to our version of write
rate
limiting filter?  Otherwise you could contribute! ;)

Trustin
--
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP key fingerprints:
* E167 E6AF E73A CBCE EE41  4A29 544D DE48 FE95 4E7E
* B693 628E 6047 4F8F CFA4  455E 1C62 A7DC 0255 ECA6

--
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP key fingerprints:
* E167 E6AF E73A CBCE EE41  4A29 544D DE48 FE95 4E7E
* B693 628E 6047 4F8F CFA4  455E 1C62 A7DC 0255 ECA6


Reply via email to