Hi Mohamed Abdelaziz,
Thank you for your reply and I understood your words.
Mohamed Abdelaziz wrote:
These pipes have different endpoints to each of the modules, we can use a single endpoint which can be demuxed, but why do that, as this already provides this separation.
That is what I would like to know exactly!
But I think that a single endpoint which could be demuxed could have an advantage in some cases.
Mohamed Abdelaziz wrote:
this also maximizes message flow, as the output pipe allow one sender at a time. Using different pipes reduces this contention.
I agree.
After all, I think that multi socket channels per a destination are necessary for reducing this contention and improving performance, but sometimes it can increase file descriptor and too many ports as you know.
Of course, if all modules' traffic is very busy, their physical connection should be separated. But if not, I think that it is better that the connection per same destination is shared.
I don't know that JXTA may perhaps share the physical connection per same destination internally though modules use each OutputPipe.
Anyway, I just want to know whether modules can use a single endpoint or not, so I understand that it could be possible but tradeoff can exist. Is it right?
Thanks!
--
Bongjae Chang
----- Original Message -----
From: Mohamed Abdelaziz
To: dev_at_shoal.dev.java.net
Sent: Friday, May 08, 2009 12:20 AM
Subject: Re: [Shoal-Dev] About JXTA OuputPipes in Shoal
On 5/7/09 4:25 AM, Bongjae Chang wrote:
Hi.
I have been trying to abstract out the transport layer in Shoal experimentally.
In the process of reviewing JXTA dependency in Shoal, I have a question about JXTA's OutputPipe.
JXTA's OutputPipe is mainly used in the following 3 parts.
1. ClusterManager: for sending AppMessage and DSC's Message
2. MasterNode: for sending master's message
3. HealthMonitor: for sending Health's message
And above 3 parts include a pipe cache map with one another.
So, I am curious to know why above 3 modules have OutputPipes with one another.
Are any problems likely to happen in JXTA if above 3 modules share only one OutputPipe?
These pipes have different endpoints to each of the modules, we can use a single endpoint which can be demuxed, but why do that, as this already provides this separation.
I think that one OutputPipe is enough because peerid is already needed for sending a message, but I wonder if I miss any important point in using JXTA.
this also maximizes message flow, as the output pipe allow one sender at a time. Using different pipes reduces this contention.
Please advice me.
Thanks.
--
Bongjae Chang