[omniORB] Optimizing call signature + performance

Martin B. 0xCDCDCDCD at gmx.at
Mon Dec 6 09:26:21 GMT 2010


Hi all!

I could need some advice with performance tuning our CORBA calls with 
omniORB - find the "details" below:

-------- Original Message --------
Subject: Optimizing call "layout" + performance
Date: Fri, 03 Dec 2010 12:14:54 +0100
From: Martin B. <0xCDCDCDCD at gmx.at>
Newsgroups: comp.object.corba

Hi,

We are currently transferring measurement samples (list of doubles +
timestamp) via a corba call connection.

The current interface looks like this:
   ...
   typedef ... TimestampStruct;
   typedef sequence<double> DblValueSeq;
   void transferSample(in TimestampStruct ts, in DblValueSeq values);
   ...

We would like to make sure that our data transfer is as efficient as
possible (as in: transferring samples with several kHz), and so I'm
trying to get opinions on how we could possibly modify the call
signature (if necessary) or which ORB settings influence data transfer
efficiency.

Notes: Typical sequence sizes range from ~10 ... ~hundreds, so each call
transfers very approximately say 100 bytes - 10 kbytes

One specific question that bothers me is whether it could make sense to
block several samples into one call, that is to change the sig to:
   ...
   struct Sample {
     TimestampStruct ts;
     DblValueSeq     values;
   };
   typedef sequence<Sample> SampleSeq;
   void transferSamples(in SampleSeq samples);
   ...

Any tips and pointers welcome!

cheers,
Martin



More information about the omniORB-list mailing list