You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Eric Shu (Jira)" <ji...@apache.org> on 2021/09/14 00:56:00 UTC

[jira] [Created] (GEODE-9597) clientUpdateMessage and clientCq maps are cached in the HAContainer key

Eric Shu created GEODE-9597:
-------------------------------

             Summary: clientUpdateMessage and clientCq maps are cached in the HAContainer key
                 Key: GEODE-9597
                 URL: https://issues.apache.org/jira/browse/GEODE-9597
             Project: Geode
          Issue Type: Bug
          Components: client queues
            Reporter: Eric Shu


In Geode, a client update message is put into a HAContainer, so that multiple client queues can share the same message.

Currently, the update message and client cq map are cached in the HAEventWrapper which is the key for the HAContainer.

{code:java}
  public HAEventWrapper(ClientUpdateMessage event) {
    this.regionName = event.getRegionName();
    this.keyOfInterest = event.getKeyOfInterest();
    this.shouldConflate = event.shouldBeConflated();
    this.eventIdentifier = event.getEventId();
    rcUpdater.set(this, 0);
    putInProgressCountUpdater.set(this, 0);
    this.clientUpdateMessage = event;
    this.clientCqs = ((ClientUpdateMessageImpl) event).getClientCqs();
  }
{code}

When HAContainer enables eviction, the value in the HAContainer can be faulted out. However, the container key (HAEventWrapper) is never evicted, so the client update message is being referenced by the HAEventWrapper and kept in memory. 

It does not save the memory as intended by enabling eviction. Need to refractor the code to remove these.


 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)