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)