Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-7789

Performance Degradation on Servers with Client Subscription Introduced in GEODE-7358

    XMLWordPrintableJSON

    Details

      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

        1. Geode_1.10_Count.png
          126 kB
          Juan Ramos
        2. Geode_Develop_Count.png
          101 kB
          Juan Ramos

          Issue Links

            Activity

              People

              • Assignee:
                echobravo Ernest Burghardt
                Reporter:
                jjramos Juan Ramos
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h