Multiple remote connections cause data transfered multiple times

Hello,

our project runs in multiple processes on different machines. We use
the orocos corba functionality to manage these and a custom transport
for actually transfering data.

If we now have two processes, sender A and receiver B and connect two
InputPorts from B to one OutputPort from A we doubled the needed
bandwidth, because two completely seperated streams will be created.
However, it would be nice if the transport channel to the receiver B
would be identical for both connections and only the last local part
would be duplicated. Is this possible in theory?

I also read the code which initializes the connections and this starts
always on the OutputPort local process (A) and creates the connection
starting from the InputPort. If it were the other way around it would
be much easier to detect an already established channel.

Your suggestions are welcome, thanks and best ragards,

Georg Bremer

Multiple remote connections cause data transfered multiple times

Hi Georg,

On Fri, Feb 22, 2013 at 7:33 PM, Georg Bremer <bremer [..] ...> wrote:
> Hello,
>
> our project runs in multiple processes on different machines. We use
> the orocos corba functionality to manage these and a custom transport
> for actually transfering data.
>
> If we now have two processes, sender A and receiver B and connect two
> InputPorts from B to one OutputPort from A we doubled the needed
> bandwidth, because two completely seperated streams will be created.
> However, it would be nice if the transport channel to the receiver B
> would be identical for both connections and only the last local part
> would be duplicated. Is this possible in theory?

Not only in theory. The DDS middleware would do this for you behind
the scenes, and various discussions on the ROS mailinglist have been
asking for a similar solution. The point is that RTT expects that the
middleware will do such optimisations. RTT can even provide the
middleware with such 'givens' if it would require it, but none does so
far. For clarity: there is no DDS transport for RTT (yet).

>
> I also read the code which initializes the connections and this starts
> always on the OutputPort local process (A) and creates the connection
> starting from the InputPort. If it were the other way around it would
> be much easier to detect an already established channel.

Congrats for understanding :-) But imo, you're looking at the wrong
place for such a feature.

>
> Your suggestions are welcome, thanks and best ragards,
>
> Georg Bremer

Peter