Hi there,
Weare using Apache Geode 1.1 as DB backend and a C++ application as client
thatis using Geode-native pre-release (and using PDX serialization), and
thesummary is that we are experience that PDX deserialization is taking most
ofthe CPU in our C++ application.
Whenbenchmarking 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 thelatencies are simply too high
The objects that we store looks like:
CacheableKeyPtrkey;
char *a;
bool bdistributedEntry;
CacheableStringPtr c;
CacheableHashMapPtr attributesMap;
// children arekept only for distributed entries
CacheableLinkedHashSetPtr d;
This method consumes most of the CPU:
CacheablePtrattributes;
instance->getField("attributes", attributes);
I have some doubts about:
- Is C++ PDX serialization mature andperformant? I have read some benchmarks
about Java's library but I was not ableto find information about the C++
library.
- Is there any of modelling guidelinesthat could alleviate the serialization
performance issue? We havestarted with a design in which classes are designed
for simplicity withoutconsider PDX serialization performance aspect
Thx in advance,
Evaristo