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)

Reply via email to