Bug 1026352

Summary: C++ vs Java HotRod client performance
Product: [JBoss] JBoss Data Grid 6 Reporter: Radim Vansa <rvansa>
Component: CPP ClientAssignee: Tristan Tarrant <ttarrant>
Status: VERIFIED --- QA Contact: Alan Field <afield>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: mgencur
Target Milestone: CR2   
Target Release: 6.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Radim Vansa 2013-11-04 13:45:08 UTC
This bug should track the performance issues for C++ HotRod client.

By preliminary testing we've found that in a test where several hundred clients fire requests to the servers the performance of C++ client is 60% lower than Java client.

Setup:
* 4 cluster nodes, 3 driver nodes
* PUT/GET with 1:2 ratio, 1024 byte entry size
* *NO* delay between requests
* The throughput for > 200 clients (total amount for all nodes) is roughly constant

Results for 6.2.0.ER3.2:
* C++ client: 48k ops/s
* Java client: 120k ops/s

Comment 3 Tristan Tarrant 2013-11-04 20:56:25 UTC
Although I don't believe this can change much, for performance we should compile with the Release profile (ER3.2 is compiled with the Debug profile):

cmake -DHOTROD_JBOSS_HOME=/path/to/jdg-server -DCMAKE_BUILD_TYPE=Release ../path/to/source

Comment 4 Radim Vansa 2014-03-27 09:12:20 UTC
After fixing the bugs in MurmurHash implementation (HRCPP-104) the performance has increased to > 120k ops/s for C++ implementation. Best results for recent Java implementation are 140k ops/s.
These results are acceptable.
Further performance change can be expected when asynchronous operations are implemented.