[
https://issues.apache.org/jira/browse/GEODE-4299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16330814#comment-16330814
]
ASF subversion and git services commented on GEODE-4299:
--------------------------------------------------------
Commit c9feba399abf64e7d6797eca9f216a3cd969e9fb in geode's branch
refs/heads/develop from [~dschneider]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=c9feba3 ]
GEODE-4299: refactor eviction (#1290)
GEODE-4299: refactor eviction
The EvictionController classes are no longer Serializable nor Cloneable. These
internal classes used to be external and needed to be these things in the past
because they were stored in the configuration. But they no longer are so these
interfaces were removed for clarity.
The EvictionController classes are no longer responsible for creating
InternalEvictionStatistics. Instead the other entities it depends on are passed
in to its constructor.
The only class with an EvictionController instance is now VMLRURegionMap which
makes the code easier to understand and reduces the number of inter-module
dependencies.
renamed internalSetMaximum to setMaximum on EvictionAttributesImpl
AbstractBucketRegionQueue no longer uses EvictionStatistics to notify itself
that it removed some objects from the queue. So it no longer needs to access
all the EvictionStatistics.
AbstractLRURegionMap has been moved to VMLRURegionMap
Casts to AbstractLRURegionMap have been removed by added additional methods to
RegionMap.
new EvictableRegion interface make clear the things a region implementation
needs to do/provide for the eviction implementation
EvictionAttributesMutator is now implemented by the dedicated class
EvictionAttributesMutatorImpl
close and clear on RegionMap now take a BucketRegion parameter so that the
eviction classes do not need to keep track of the BucketRegion.
EvictionList no longer does some of the things it did before that should have
been the responsibility of the EvictionController. Now the EvictionList is
given the EvictionController it should defer to. The EvictionListBuilder has
been simplified since EvictionList now only needs a controller.
The eviction classes that track statistics have been refactored to be clearer.
Now the EvictionStats interface is implemented by classes that provide vsd type
stats. The EvictionCounters interface is implemented by a class that wraps
EvictionStats and provides atomics for some of them.* Removed old code that
made the EvictionController classes
Serializable, Declarable, and Clonable.
> some internal classes for eviction are serializable for no apparent reason
> --------------------------------------------------------------------------
>
> Key: GEODE-4299
> URL: https://issues.apache.org/jira/browse/GEODE-4299
> Project: Geode
> Issue Type: Bug
> Components: eviction
> Reporter: Darrel Schneider
> Assignee: Darrel Schneider
> Priority: Major
> Labels: pull-request-available
>
> The eviction controller classes are serializable even though they can no
> longer be safely serialized.
> Also, in general, the internal classes for eviction are confusing. The
> dependencies between them are not clear and multiple classes attempt to do
> the same thing.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)