Darrel Schneider created GEODE-9150:
---------------------------------------
Summary: partition region expiration uses extra memory on
secondaries
Key: GEODE-9150
URL: https://issues.apache.org/jira/browse/GEODE-9150
Project: Geode
Issue Type: Improvement
Components: expiration
Reporter: Darrel Schneider
Partition region expiration usually drives all the expiration from the primary
(the unusual case is when the pr also has evict destroy in which case
expiration is done on primary and secondaries). But the secondaries still have
all the expiration tasks (one for each entry which consumes about 112 bytes of
memory per entry). When they fire on the secondary the go into a different
pendingExpiry map owned by each bucket. They hang around in that map until the
primary expiration happens or a secondary becomes primary. The pendingExpiry
map also eats up some memory.
What we could do instead if no expiration scheduling on secondaries. When a
secondary becomes primary that it could kick off a background thread scheduling
an expiry task for each entry. Currently when it becomes primary it processes
the pending expiry map so that could be replaced with scheduling expiry.
LocalRegion already has the code that supports rescheduling expiry since it is
something users can dynamically change on an existing region. This would not
only reduce the memory usage on secondaries but also simplify our expiration
implementation. PR eviction currently complicates our pr expiration
implementation but if our pr eviction destroy was always distributed when the
region had expiration, then we would not need any special expiration code to
deal with evict destroy.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)