I would expect PDX to be more or less on par on par with protobuf performance, 
with the added benefits of server-side queries and function execution.  Can you 
share the code where you are doing the puts and gets?

Anthony

> On Jun 14, 2017, at 6:10 AM, Jacob Barrett <[email protected]> wrote:
> 
> Since there hasn't been any release of Geode native are you using what is on 
> development branch or a specific commit? 
> 
> If you don't intend to do any server side queries or function execution you 
> could write your own custom serialization optimized for your data structure. 
> 
> PDX on C++ is mature but there is inherent performance cost of converting 
> data structures to and from serialized forms in a generic cross platform way. 
> 
> I assume you're using a profiling tool. Can you share the entire output from 
> that tool?
> 
> -Jake
> 
> 
> Sent from my iPhone
> 
> On Jun 14, 2017, at 3:12 AM, Evaristo José Camarero 
> <[email protected] <mailto:[email protected]>> wrote:
> 
>> Hi there,
>>  
>> We are using Apache Geode 1.1 as DB backend and a C++ application as client 
>> that is using Geode-native pre-release (and using PDX serialization), and 
>> the summary is that we are experience that PDX deserialization is taking 
>> most of the CPU in our C++ application.
>>  
>> When benchmarking the application we see the following (in a 12 cores 
>> machine):
>> - Geode CPU usage is really low (let's say 40%)
>> - Client app CPU usage is really (let's say 700%)
>>  
>> If we push further the benchmark the latencies are simply too high
>>  
>> The objects that we store looks like:
>>           CacheableKeyPtr key;
>>     char *a;
>>     bool bdistributedEntry;
>>     CacheableStringPtr c;
>>     CacheableHashMapPtr attributesMap;
>>     // children are kept only for distributed entries
>>     CacheableLinkedHashSetPtr d;
>> 
>> 
>> 
>> 
>> This method consumes most of the CPU:
>> CacheablePtr attributes;
>>     instance->getField("attributes", attributes);
>> 
>> 
>> 
>> 
>> I have some doubts about:
>> - Is C++ PDX serialization mature and performant? I have read some 
>> benchmarks about Java's library but I was not able to find information about 
>> the C++ library.
>> - Is there any of modelling guidelines that could alleviate the 
>> serialization performance issue? We have started with a design in which 
>> classes are designed for simplicity without consider PDX serialization 
>> performance aspect
>> 
>> 
>> Thx in advance,
>> 
>> 
>> Evaristo

Reply via email to