[ 
https://issues.apache.org/jira/browse/GEODE-9149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Darrel Schneider updated GEODE-9149:
------------------------------------
    Labels: GeodeOperationAPI  (was: )

> partition region distributed expiration actions are not distributed if the 
> region has evict destroy
> ---------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-9149
>                 URL: https://issues.apache.org/jira/browse/GEODE-9149
>             Project: Geode
>          Issue Type: Bug
>          Components: eviction, expiration
>            Reporter: Darrel Schneider
>            Priority: Major
>              Labels: GeodeOperationAPI
>
> If a partitioned region is configured with evict destroy and with distributed 
> expiration, then the expiration action is no longer distributed but is a 
> local operation performed independently on the primary and each secondary. 
> This can lead to partitioned regions that give inconsistent read results. For 
> example a get op can be sent to primary or any secondary so it may exist on 
> one but not another.
> Changing these distributed expiration actions to be local was a choice made 
> about 11 years ago to deal with the fact that evict destroy does local 
> destroys that can also cause the cache to be inconsistent. If the evict 
> destroy was done on the primary then it caused the secondary entries to never 
> expire (since normally all expiration on a pr is driven from the primary).
> But even though we needed to make sure expiration still happened, even if the 
> entry was local destroyed on the primary, we could have done it and still had 
> expiration be distributed. We could have sent a message to the primary 
> telling it to do the expire action (invalidate or destroy) even if the entry 
> does not exist on the primary. We should also consider having a fixed delay 
> of the expiration on the secondary so that if primary expiration is working 
> it will happen before the secondary expiration. If the primary expiration 
> happens first then it will send a message to the secondary cancelling it and 
> expiring the entry there.
> Another option is to redefine eviction so that it accommodates to expiration 
> instead of expiration accommodating to eviction. Eviction doing a local 
> destroy on a region that provides consistent storage (both partitioned and 
> replicate regions) is not a good thing. It would be much better for eviction 
> to do a distributed destroy on these regions. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to