Dear Jonathan,

        Thanks for the reply, can you provide more details on the "All writes 
are queued up and scheduled
later using the poll/kqueue system." How this poll & kqueue system works? Do we 
have any control on this from MINA framework?

We are not facing any problem with the higher CPU consumption but we see that 
when there is high load from System-B to our server the reads from System-B and 
write back to System-B on the single persistence session is becoming slow. So 
we were looking at i/o operations and how to make them fast.

With your explanation provided in below email about ExecutorFilter, If we add 
it in our connector after codec filter will help us reduce the I/O overhead on 
reactor/processor thread. I hope my understanding is right kindly confirm?


Thanks And Regards,
Nitin Phuria

Confidentiality Disclaimer: “The information contained in this electronic 
message (email) and any attachments to this email are intended for the 
exclusive use of the addressee(s) and access to this email by anyone else is 
unauthorized. The email may contain proprietary, confidential or privileged 
information or information relating to Integra Group. If you are not the 
intended recipient, please notify the sender by telephone, fax, or return email 
and delete this communication and any attachments thereto, immediately from 
your computer. Any dissemination, distribution, or copying of this 
communication and the attachments thereto (in whole or part), in any manner, is 
strictly prohibited and actionable at law. The recipient acknowledges that 
emails are susceptible to alteration and their integrity cannot be guaranteed 
and that Company does not guarantee that any e-mail is virus-free and accept no 
liability for any damage caused by any virus transmitted by this email.”

-----Original Message-----
From: Jonathan Valliere [mailto:jon.valli...@emoten.com] 
Sent: 09 April 2020 18:09
To: Nitin Phuria
Cc: users@mina.apache.org
Subject: Re: MINA: ExecutorFilter on NioSocketConnector

Mina is a queue and flush framework. All writes are queued up and scheduled
later using the poll/kqueue system.

The ExecutorFilter uses threading to process incoming messages using a pool
of threads instead of the reactor/processor thread.  This frees the
processor thread to do IO.

Have you profiled the application to figure out which code is consuming the
CPU?

On Thu, Apr 9, 2020 at 3:39 AM Nitin Phuria <nit...@integramicro.com.invalid>
wrote:

> Dear All,
>
>
>
>                 We have Server developed using MINA 2.0.16 where it
> connects
> to two other systems say System-A and System-B.
>
>
>
> The connectivity with both these system is persistence which means our
> server connects and create only single session with each of these systems
> and on the same session multiple message exchanges (Request/Response)
> happens.
>
>
>
> The current flow of message is as below:
>
> Once we connect with System-B and have persistence connection (single
> session), System-B will send us message which we have to process in our
> server and then send processed message to System-A then get response from
> System-A and then pass it back to System-B
>
>
>
> We have provision that if load increases we can have multiple instances of
> System-A and our server can establish persistence connection (single
> session) with each of these System-A instances and manage the load.
>
>
>
> We are facing problem with load coming from System-B to our server as it is
> coming on single session and we could see that the read/write on the
> session
> are slowed down and lot of queue build-up is happening for read/write.
>
>
>
> Below is the code for establishing the Connectivity with System-B where we
> have not added the ExecutorFilter
>
>
>
> SocketAddress socketAddress = new InetSocketAddress(this.hostName,
> this.port);
>
> NioSocketConnector connector = new NioSocketConnector();
>
> connector.setConnectTimeoutMillis(30 * 1000L);
>
> connector.getSessionConfig().setTcpNoDelay(true);
>
>
> connector.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,this.echoTime)
> ;
>
> this.connector.setHandler(systemBHandler); // systemBHandler is our
> IoHandler implementationfor System-B
>
> IoFilter codecFilter = new
> ProtocolCodecFilter((ProtocolCodecFactory)systemBProcFactory);//
> systemBProcFactory is our Codec Implementation
>
> DefaultIoFilterChainBuilder chain = this.connector.getFilterChain();
>
> chain.clear();
>
> chain.addLast("codec", codecFilter);
>
>
>
> https://cwiki.apache.org/confluence/display/MINA/Configuring+Thread+Model
>
>
> From this link we could understand as below
>
>
>
> If We didn't add any ExecutorFilter events are forwarded to an IoHandler
> via
> method invocations. This means your business logic in your IoHandler
> implementation will run in the I/O processor thread. We call this thread
> model a 'single thread model'. The single thread model is known to be
> adequate for low-latency network applications with CPU-bound business logic
> (e.g. game servers).
>
>
>
> Do we need to add the ExecutorFilter for above mentioned NioSocketConnector
> to System-B so that I/O processor thread will only do the I/O job and all
> other business logic will be given to worker threads in ExecutorFilter.
>
>
>
> Is there any way to increase the number of threads for my I/O to do the
> read/write as we have restriction to create only one session with System-B.
>
>
>
> If we add ExecutorFilter  with IoEventType for read/write then will that
> make the read/write faster with System-B on same single session.
>
>
>
> Or we add ExecutorFilter  with default IoEventType (All Events) will that
> make the read/write faster with System-B on same single session.
>
>
>
> Pls help us understand the working on ExecutorFilter in above scenario
> where
> NioSocketConnector has only single session to do all the read/write with
> huge load of almost 60-70 messages per second with average message size of
> 3-4KiloBytes.
>
>
>
> Currently we have server having 16 Core with 64 GB RAM.
>
>
>
> Thanks And Regards,
>
> Nitin Phuria
>
>
>
> Confidentiality Disclaimer: "The information contained in this electronic
> message (email) and any attachments to this email are intended for the
> exclusive use of the addressee(s) and access to this email by anyone else
> is
> unauthorized. The email may contain proprietary, confidential or privileged
> information or information relating to Integra Group. If you are not the
> intended recipient, please notify the sender by telephone, fax, or return
> email and delete this communication and any attachments thereto,
> immediately
> from your computer. Any dissemination, distribution, or copying of this
> communication and the attachments thereto (in whole or part), in any
> manner,
> is strictly prohibited and actionable at law. The recipient acknowledges
> that emails are susceptible to alteration and their integrity cannot be
> guaranteed and that Company does not guarantee that any e-mail is
> virus-free
> and accept no liability for any damage caused by any virus transmitted by
> this email."
>
>
> --
> *Confidentiality Disclaimer**: "The information contained in this
> electronic message
> (email) and any attachments to this email are intended
> for the exclusive use of
> the addressee(s) and access to this email by
> anyone else is unauthorized. The
> email may contain proprietary,
> confidential or privileged information or
> information relating to Integra
> Group. If you are not the intended recipient,
> please notify the sender by
> telephone, fax, or return email and delete this
> communication and any
> attachments thereto, immediately from your computer. Any
> dissemination,
> distribution, or copying of this communication and the
> attachments thereto
> (in whole or part), in any manner, is strictly prohibited
> and actionable at
> law. The recipient acknowledges that emails are susceptible
> to alteration
> and their integrity cannot be guaranteed and that Company does
> not
> guarantee that any e-mail is virus-free and accept no liability for any
>
> damage caused by any virus transmitted by this email."*
>
-- 

CONFIDENTIALITY NOTICE: The contents of this email message and any
attachments are intended solely for the addressee(s) and may contain
confidential and/or privileged information and may be legally protected
from disclosure.


-- 
*Confidentiality Disclaimer**: “The information contained in this 
electronic message
(email) and any attachments to this email are intended 
for the exclusive use of
the addressee(s) and access to this email by 
anyone else is unauthorized. The
email may contain proprietary, 
confidential or privileged information or
information relating to Integra 
Group. If you are not the intended recipient,
please notify the sender by 
telephone, fax, or return email and delete this
communication and any 
attachments thereto, immediately from your computer. Any
dissemination, 
distribution, or copying of this communication and the
attachments thereto 
(in whole or part), in any manner, is strictly prohibited
and actionable at 
law. The recipient acknowledges that emails are susceptible
to alteration 
and their integrity cannot be guaranteed and that Company does
not 
guarantee that any e-mail is virus-free and accept no liability for any

damage caused by any virus transmitted by this email.”*

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@mina.apache.org
For additional commands, e-mail: users-h...@mina.apache.org

Reply via email to