I used C# benchmark test tool (which comes with C# client library) to make a comparison between the performance of the Async and the Sync client connection, but the results were unexpected! We do expect the Async to perform better or the minimum the same.
Now, to accomplish this test, first I initialized a namespace with 600,000 record, and each record has 1000 INT bin (simulation of my business case), and then I ran the test with 100% Read load, and below is the test parameters with results.
- Sync (8 threads)
<=1ms >1ms >2ms >4ms >8ms >16ms >32ms write 0% 0% 0% 0% 0% 0% 0% read 0% 100% 45% 6% 0% 0% 0%
write(tps=0 timeouts=0 errors=0) read(tps=3613 timeouts=0 errors=0) total(tps=3613 timeouts=0 errors=0)
-
Async (max concurrent connections : 40, generator threads: 1)
<=1ms >1ms >2ms >4ms >8ms >16ms >32ms write 0% 0% 0% 0% 0% 0% 0% read 0% 100% 98% 86% 71% 10% 0%
write(tps=0 timeouts=0 errors=0) read(tps=2943 timeouts=0 errors=0) total(tps=2943 timeouts=0 errors=0)
As you notice from the results above, the Async is badly performing than the Sync connection
Is this normal? can you please advice, and why this is happening?