<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Blogs from RTI</title>
	<atom:link href="http://blogs.rti.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.rti.com</link>
	<description>The Real-Time Middleware Experts</description>
	<lastBuildDate>Fri, 05 Feb 2010 20:53:30 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Throughput Performance: Comparing Apples to Apples by Rick Warren</title>
		<link>http://blogs.rti.com/2009/05/05/throughput-performance-comparing-apples-to-apples/#comment-117</link>
		<dc:creator>Rick Warren</dc:creator>
		<pubDate>Fri, 05 Feb 2010 20:53:30 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rti.com/?p=125#comment-117</guid>
		<description>Hi George,
Thanks for your question.

The message-rate throughput numbers we post at http://www.rti.com/products/dds/benchmarks-cpp-linux.html, to which I was referring, are measured in units of DDS samples per second. (A &quot;sample&quot; is the object you pass to the DDS write() call.) You&#039;re correct that a packet send rate in the tens-of-thousands is typical. However, a DDS sample may or may not correspond one-to-one to a UDP packet. For example:

--&gt; If you&#039;ve configured RTI Data Distribution Service to batch data, many samples will be combined into a single UDP packet to reduce the number of trips through the IP stack. This is the configuration we use to generate our published results.

--&gt; If your sample size is greater than the maximum UDP datagram size (64 KB, or smaller on some embedded OSes), RTI Data Distribution Service will fragment a single logical sample over multiple UDP packets and then reassemble them on the receiving side.

Given that, there are a number of factors that can explain the differences between our published performance numbers and what you&#039;re seeing.

1. The platform and networks are different. As explained on our performance results page (URL above), as of this writing, we generate our published numbers using 2.4 GHz dual-core machines connected to a gigabit ethernet network. That hardware is significantly more capable than what you&#039;ve indicated you&#039;re using. In particular, your 100-Mbit network has 10x less capacity than our testing environment, so you can expect a theoretical maximum throughput close to 100K samples/sec than to 1M samples/sec.

2. The batching configuration may be different. By default, RTI Data Distribution Service does not batch samples, because doing so can impact latency. Based on the results you&#039;re seeing, you may not have altered this default setting. Look in your code or XML QoS profile file for the BatchQosPolicy, which is configured on the DataWriter entity. If you&#039;re not familiar with this policy, you can find more information in the API documentation that&#039;s included in your product distribution.

3. The sample sizes may be different. Note on the graph how the sample rate falls off as the sample size increases. At very small sizes, this reflects the increasing cost of copying larger amounts of data. Once the network becomes saturated, it reflects the purely mathematical relationship (number of samples) ~= (network capacity) / (sample size).

There are a couple of things you can do to reduce #2 and #3 above.

--&gt; If you&#039;d like to run our test configurations on your hardware directly, you can download our example performance test. Visit our Knowledge Base at https://www.rti.com/kb/index.html, click &quot;Performance,&quot; then click &quot;Example Performance Test for RTI Data Distribution Service.&quot; This is the exact code we use to generate our published numbers.

--&gt; Even easier: if you&#039;re using a recent version of RTI Data Distribution Service, you can find an example QoS profile configuration in your product distribution. Look in example/QoS/high_throughput.xml.

I hope this was helpful.
Best regards,
- Rick</description>
		<content:encoded><![CDATA[<p>Hi George,<br />
Thanks for your question.</p>
<p>The message-rate throughput numbers we post at <a href="http://www.rti.com/products/dds/benchmarks-cpp-linux.html" rel="nofollow">http://www.rti.com/products/dds/benchmarks-cpp-linux.html</a>, to which I was referring, are measured in units of DDS samples per second. (A &#8220;sample&#8221; is the object you pass to the DDS write() call.) You&#8217;re correct that a packet send rate in the tens-of-thousands is typical. However, a DDS sample may or may not correspond one-to-one to a UDP packet. For example:</p>
<p>&#8211;&gt; If you&#8217;ve configured RTI Data Distribution Service to batch data, many samples will be combined into a single UDP packet to reduce the number of trips through the IP stack. This is the configuration we use to generate our published results.</p>
<p>&#8211;&gt; If your sample size is greater than the maximum UDP datagram size (64 KB, or smaller on some embedded OSes), RTI Data Distribution Service will fragment a single logical sample over multiple UDP packets and then reassemble them on the receiving side.</p>
<p>Given that, there are a number of factors that can explain the differences between our published performance numbers and what you&#8217;re seeing.</p>
<p>1. The platform and networks are different. As explained on our performance results page (URL above), as of this writing, we generate our published numbers using 2.4 GHz dual-core machines connected to a gigabit ethernet network. That hardware is significantly more capable than what you&#8217;ve indicated you&#8217;re using. In particular, your 100-Mbit network has 10x less capacity than our testing environment, so you can expect a theoretical maximum throughput close to 100K samples/sec than to 1M samples/sec.</p>
<p>2. The batching configuration may be different. By default, RTI Data Distribution Service does not batch samples, because doing so can impact latency. Based on the results you&#8217;re seeing, you may not have altered this default setting. Look in your code or XML QoS profile file for the BatchQosPolicy, which is configured on the DataWriter entity. If you&#8217;re not familiar with this policy, you can find more information in the API documentation that&#8217;s included in your product distribution.</p>
<p>3. The sample sizes may be different. Note on the graph how the sample rate falls off as the sample size increases. At very small sizes, this reflects the increasing cost of copying larger amounts of data. Once the network becomes saturated, it reflects the purely mathematical relationship (number of samples) ~= (network capacity) / (sample size).</p>
<p>There are a couple of things you can do to reduce #2 and #3 above.</p>
<p>&#8211;&gt; If you&#8217;d like to run our test configurations on your hardware directly, you can download our example performance test. Visit our Knowledge Base at <a href="https://www.rti.com/kb/index.html" rel="nofollow">https://www.rti.com/kb/index.html</a>, click &#8220;Performance,&#8221; then click &#8220;Example Performance Test for RTI Data Distribution Service.&#8221; This is the exact code we use to generate our published numbers.</p>
<p>&#8211;&gt; Even easier: if you&#8217;re using a recent version of RTI Data Distribution Service, you can find an example QoS profile configuration in your product distribution. Look in example/QoS/high_throughput.xml.</p>
<p>I hope this was helpful.<br />
Best regards,<br />
- Rick</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Throughput Performance: Comparing Apples to Apples by George Goetz</title>
		<link>http://blogs.rti.com/2009/05/05/throughput-performance-comparing-apples-to-apples/#comment-116</link>
		<dc:creator>George Goetz</dc:creator>
		<pubDate>Fri, 05 Feb 2010 13:11:05 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rti.com/?p=125#comment-116</guid>
		<description>I am conducting some performance tests on DDS with a toy application. I am trying to understand you statement above 1 million samples being sent from 1 publisher to 1 subscriber since I am not getting anywhere near that and other information I found indicates a rate of about 25,000 samples (UDP packets) is more typical for a point to point test environment (two PCs running RT Linux connected by 100 MB ethernet. Each PC has a single core 1GHz processor). I have two nodes which circulate one sample around a two node network. I have a publisher and subscriber on each node. One publisher sends Topic1 to the remote subscriber which turns it around and publishes Topic2 to the other node&#039;s subscriber which turns it back to Topic1 etc. I know this does not match the test you describe above but it is more realistic for our environment then one where one node does nothing but publish samples and another receives.

If I am interpreting your statement of 1 million samples persecond as 1 million UDP packets that would mean it takes 1 microsecond to run up or down the TCP/IP stack. This is much faster then anything I have measured. Is my interpretation of your data correct?</description>
		<content:encoded><![CDATA[<p>I am conducting some performance tests on DDS with a toy application. I am trying to understand you statement above 1 million samples being sent from 1 publisher to 1 subscriber since I am not getting anywhere near that and other information I found indicates a rate of about 25,000 samples (UDP packets) is more typical for a point to point test environment (two PCs running RT Linux connected by 100 MB ethernet. Each PC has a single core 1GHz processor). I have two nodes which circulate one sample around a two node network. I have a publisher and subscriber on each node. One publisher sends Topic1 to the remote subscriber which turns it around and publishes Topic2 to the other node&#8217;s subscriber which turns it back to Topic1 etc. I know this does not match the test you describe above but it is more realistic for our environment then one where one node does nothing but publish samples and another receives.</p>
<p>If I am interpreting your statement of 1 million samples persecond as 1 million UDP packets that would mean it takes 1 microsecond to run up or down the TCP/IP stack. This is much faster then anything I have measured. Is my interpretation of your data correct?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Data Transparency: Why You Should Care by In Progress at OMG: Extensible and Dynamic Types &#171; Blogs from RTI</title>
		<link>http://blogs.rti.com/2009/04/30/data-transparency-why-you-should-care/#comment-83</link>
		<dc:creator>In Progress at OMG: Extensible and Dynamic Types &#171; Blogs from RTI</dc:creator>
		<pubDate>Tue, 01 Sep 2009 23:34:03 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.rti.com/?p=82#comment-83</guid>
		<description>[...] of type safety that you&#8217;ll find in local applications. In addition to reducing errors, this deep knowledge of data types can improve performance and resource usage by reducing the number of data copies in the system and [...]</description>
		<content:encoded><![CDATA[<p>[...] of type safety that you&#8217;ll find in local applications. In addition to reducing errors, this deep knowledge of data types can improve performance and resource usage by reducing the number of data copies in the system and [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
