0

after watching a presentation about how Speedus can optimize 110% the Hazelcast performance I decided to give it a try.

I did the following setup, I downloaded the Ubuntu docker image supplied with speedus. My host operating system is MacOs with 8 CPUs.

I am using domain driven design and insert rich objects into the Hazelcast Map from 8 parallel threads. The average size of the objects after serialization is probably in the range 5kb - 10kb plus minus. For serialization I use IdentifiedDataSerializeable.

Not only that I was not able to observe any performance increase. But actually my Torusware setup had 30% performance decrease during PUT of 150 000 objects inside a distributed map.

I tested a two node setup insertion from 8 threads. The result was even worse, probably near 100% slower than my normal setup.

Is there something I am not doing right? According to the Torusware site this thing is supposed to be plug and play. I can observe in the console that SPEEDUS is loaded, but the performance goes terribly wrong.

Alexander Petrov
  • 9,204
  • 31
  • 70
  • What Hazelcast version did you try? Over the course of the last few years we optimized the Hazelcast io layer massively and probably in a way to works against the way Torusware tries to "speed it up". – noctarius Dec 11 '16 at 19:07
  • Hello I used Hazelcast 3.6.4. Can you comment something ? What are your thoughts. Does not need to be super accurate. I am just very puzzled. I have noticed that the SPEEDUS setting goes much harder on my CPU by the way compared to just Hazelcast. I have one theory that it is because I am using large objects and spend a lot of CPU time serializing and deserializing. I have not tryed with small objects how it will work. – Alexander Petrov Dec 11 '16 at 19:57
  • By the way one more question so and so I digged into this socket topic. Is it possible to use on Hazelcast Unix Domain Socket. My understanding is that if TCP/IP layer can be bypassed things can go quite fast right ? Is it possible for Hazelcast to use some sort of interprocess communication instead of going through the TCP stack ? – Alexander Petrov Dec 11 '16 at 19:59
  • Nope it is not possible and I would stay with standard Hazelcast config if that works better for you than Torusware, but I never tested it myself. Apart from that, what's your serialization? – noctarius Dec 12 '16 at 17:56
  • We use IdentifiedDataSerializeable. We have also set the Unsafe to true on the serializer confguration. – Alexander Petrov Dec 12 '16 at 19:35
  • I would guess the highly optimized TCP stack might just rendered torusware unnecessary but maybe one the torusware guys answers too. – noctarius Dec 13 '16 at 14:18

0 Answers0