Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.11.0
Description
On clusters with pool subscriptions enabled, a performance degradation was introduced by GEODE-7358 for regular cache operations.
The InternalDistributedMember.getDurableClientAttributes() method is indirectly invoked by the methods hashCode() and equals() within the ClientProxyMembershipID class, which is stored in several Java Collection classes across the product (including different types of Map instances).
Prior to GEODE-7358 the DurableClientAttributes class instance was cached within the NetMember class, but now is created every time the method is invoked, resulting in a performance penalty for regular cache operations on servers with subscription enabled (not only extra garbage, the constructor itself also does some string manipulation).
Using one of our internal testing scenarios and a java profiler we detected that we create ~24 instances of DurableClientAttributes using Geode 1.10, but ~ 404.037.243 instances using the latest develop branch (screenshots attached).
Attachments
Attachments
Issue Links
- links to