Please note that there is a difference between configuration parameters and QoS policies. Configuration parameters are not standardized and can be different for each vendor. The mechanisms for setting configuration parameters can be (and are) different for each vendor. With OpenSplice, the configuration parameters are set in a configuration XML and your application is not aware of those. The QoS policies are standardized and appear in your code. Let's focus on you application first before going into detailed configuration settings. I assume that your test tries to write char sequences with a length of 1,000,000 bytes as fast as possible in a tight loop -- is that correct? Typically, your application can write faster than it can be delivered to the network. So in order to avoid a situation where you are overloading the backbone, you should set the RESOURCE_LIMITS QoS on the dataWriter side, for example with max_samples=1. As soon as the middleware requires the dataWriter history to store 1 sample for reliability because it can not deliver it directly, your dataWriter will slow down. You can check whether this happens by checking the return value of the dataWriter.write() method and see if it gave a RETCODE_TIMEOUT. If it did, you can retry until it returns with RETCODE_OK. Or you can just set the max_blocking_time to a large value, if you don't mind being blocked for a while. Concerning the configuration parameters: I will limit myself to the maxBurstSize for now -- let's see how far this brings you. The maxBurstSize parameter identifies the maximum number of bytes that are sent to the network per resolution tick (=10ms in your case). By default, its value is 200,000, which results in 20,000,000 bytes/second -- sounds like 20% on a GB network...
posted on Tuesday, March 17, 2009 - 06:21 pm
I try to write various char sequences [100B - 1000.000B] in tight loop and for that reason I defined in idl file max sequence length 100.000.
I set following Qos in datawriter side: RESOURCE_LIMITS QoS: max samples = 1 max blocking time 1s LATENCY BUDGET QoS: duration = 0.0s
I use Open Splice DDS and its xml settings: maxBurstSize: 10000000 which is far enough for 1GBs network resolution 10ns QueueSize 10000
What else can I consider? The maxBurstSize is not a problem. Thanks.