From Socket to DDS ???

4 posts / 0 new
Last post
Offline
Last seen: 10 years 1 week ago
Joined: 04/08/2013
Posts: 6
From Socket to DDS ???

Hi all, 

If I have  a program that is programmed using Socket API, now I want to program the same program using DDS middleware (using QoS).
Is this will improve the performance of the program? 

Thank you

rip
rip's picture
Offline
Last seen: 1 hour 28 min ago
Joined: 04/06/2012
Posts: 324

That depends on what you mean by "performance".  

So:  It depends.

If all you have is one producer and one consumer, no.

If you need to scale the number of producers, probably.

If you need to scale the number of consumers, probably.

If you need to scale the number of both producers and consumers, most likely.

If you need to apply QoS attributes to the data flows between the producers and consumers, absolutely.

rip

Offline
Last seen: 10 years 1 week ago
Joined: 04/08/2013
Posts: 6

Thank you rip 

I'm going to re-write file sharing application

Do you think applying Qos will help in speeding up the file sharing process (peer to peer file sharing like BitTorrent)?

Anas

 

rip
rip's picture
Offline
Last seen: 1 hour 28 min ago
Joined: 04/06/2012
Posts: 324

Hi Anas,

"There are settings in QoS which will spead up the overall rate of throughput and improve latency."  in scare quotes because there are also settings that if not used correctly will lower the overall rate of throughput and destroy the latency, and in fact may prevent the connection from working at all.

QoS isn't about "making it faster".  QoS is about using the middleware to apply the necessary system and resource constraints, qualities and requirements of a data flow, on the data flow.  Generally yes the outcome desired is to make it faster, but that isn't what QoS is specifically for, since "making it faster" is a system requirement or desire, not a switch in QoS. 

And "make it faster" implies a comparison, so what are you comparing it to? Faster than BitTorrent? I don't know, because we don't know what environment you are working in. A single subnet?  Across the Internet?  The QoS settings that might make it "faster" in one environment may make it slower in another -- and slower may be what you are aiming for because that is what the /system/ needs because you have a network bandwidth constraint and smoothing out the peaks lowers the overall system latency as there are fewer retry-storms.

Now, if you have written your FTP based on DDS, and you think it isn't working very fast, we could make suggestions about what to tune (probably you are using the default 9k message_size_max, and you should really increase this to 64k if using UDP, etc).  We recommend that you build the application first, using the default QoS settings for Reliable.  Then make a table of possible QoS settings (increase message_size_max, etc), and then start changing things in an academic manner, to generate the necessary data that will allow you to decide which set of settings target deltas in the throughput and latency, in the direction you need them to change.

rip