[ 
https://issues.apache.org/jira/browse/GEODE-4299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16327884#comment-16327884
 ] 

ASF GitHub Bot commented on GEODE-4299:
---------------------------------------

dschneider-pivotal opened a new pull request #1290: GEODE-4299: refactor 
eviction
URL: https://github.com/apache/geode/pull/1290
 
 
   
   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.
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> 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)

Reply via email to