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

Nick Vallely updated GEODE-3845:
--------------------------------
    Description: 
I use entry-idle-time and eviction together in a partition region that holds 
one redundant copy.
 Details of setting are as follows:
{code:xml}
<region name="Data" refid="PARTITION">
  <region-attributes>
    <entry-idle-time>
      <expiration-attributes timeout="60" action="destroy" />
    </entry-idle-time>
    <partition-attributes redundant-copies="1" />
    <eviction-attributes>
      <lru-entry-count maximum="10" action="local-destroy" />
    </eviction-attributes>
  </region-attributes>
</region>
{code}
In this setting, the data held by the cache server is different. Then, 
inconsistent results are returned depending on the server to be connected. 
Eviction of the partition region can only select local-destroy or 
overflow-to-disk. On the other hand, it is written that the expire chapter of 
the document can not use local-destroy, local-invalidate in the partition 
region. Likewise, I think that data inconsistency will occur even with the 
settings like this time.

Below is the test code:

[https://github.com/masaki-yamakawa/geode/blob/bug-partition-local-destroy/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/BugExpireAndEvictionDUnitTest.java]

I think that it is necessary to add a check at the time of region creation or 
write it in the document.

 

**

Problem: currently eviction-action must be either 'local-destroy' or 
'overflow-to-disk'

ex: <expiration-attributes timeout="60" action="local-destroy" />

Solution: This story is to add the additional option "distributed-destroy" as 
an action setting for any eviction type. 

This will enable a local destroy action to be distributed across the cluster 
(currently this does not exist)

 

Acceptance: can set this on region configuration via cache.xml, API or gfsh

gfsh help and docs have been updated

  

 

  was:
I use entry-idle-time and eviction together in a partition region that holds 
one redundant copy.
 Details of setting are as follows:
{code:xml}
<region name="Data" refid="PARTITION">
  <region-attributes>
    <entry-idle-time>
      <expiration-attributes timeout="60" action="destroy" />
    </entry-idle-time>
    <partition-attributes redundant-copies="1" />
    <eviction-attributes>
      <lru-entry-count maximum="10" action="local-destroy" />
    </eviction-attributes>
  </region-attributes>
</region>
{code}
In this setting, the data held by the cache server is different. Then, 
inconsistent results are returned depending on the server to be connected. 
Eviction of the partition region can only select local-destroy or 
overflow-to-disk. On the other hand, it is written that the expire chapter of 
the document can not use local-destroy, local-invalidate in the partition 
region. Likewise, I think that data inconsistency will occur even with the 
settings like this time.

Below is the test code:

[https://github.com/masaki-yamakawa/geode/blob/bug-partition-local-destroy/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/BugExpireAndEvictionDUnitTest.java]

I think that it is necessary to add a check at the time of region creation or 
write it in the document.

 

**

Problem: currently eviction-action must be either 'local-destroy' or 
'overflow-to-disk'

ex: <expiration-attributes timeout="60" action="local-destroy" />

Solution: This story is to add the additional option "distributed-destroy" as 
an action setting for any eviction type. 

This will enable a local destroy action to be distributed across the cluster 
(currently this does not exist)

 

Acceptance: can set this on region configuration via cache.xml, API or gfsh

gfsh help and docs have been updated

 

+Story: Add Option+

Given I want data consistency across a distributed replicated region

When I go to set an eviction action

Then I should have the ability to specify one of the following actions:
 * 'local-destroy' [Default action]
 * 'none'
 * 'overflow-to-disk'
 * 'distributed-destroy' (NEW option)

 

+Story: Behavior+

 

Given I have a region expiration action set in the system to 
'distributed-destroy'

When an eviction event based on [mem%, count, regionSize, time] occurs to 
destroy entries

Then the system will destroy the same entries in any region where they exist 
across the distributed environment

 

+Story: Configuring cache.xml+

Given I am configuring a system with replicated regions

When I setup my cache.xml

Then I have the ability to add a 'destributed–destroy' action value for the 
following tags:
 * <lru-entry-count maximum="10000" action "XXXXX" />

 

 

+Story: Spring Data Gemfire+

Given I am configuring a system with replicated regions

when I setup my region's eviction action through Spring Data Gemfire

Then I need the ability to specify the value of 'distributed-destroy'

 

+Story : Documentation+

Given I am looking for help for region configuration

When I look at the help documentation for 'Configure Data Eviction'

Then I should see details under the 'Decide what action to take when the limit 
is reached' section for 'Distributed Destroy'

 

+Story: GFSH Create region+

GIVEN I want to create a new region with distributed-destroy eviction-action 
through GFSH CLI

WHEN I use the command
{code:java}
create region{code}
THEN I have the optional parameter of
{code:java}
 --eviction-action=distributed-destroy{code}
AND the API utilized by GFSH is updated to support this value for create region

 

 


> Distributed destroy on eviction
> -------------------------------
>
>                 Key: GEODE-3845
>                 URL: https://issues.apache.org/jira/browse/GEODE-3845
>             Project: Geode
>          Issue Type: New Feature
>          Components: docs, eviction
>            Reporter: Masaki Yamakawa
>            Priority: Major
>
> I use entry-idle-time and eviction together in a partition region that holds 
> one redundant copy.
>  Details of setting are as follows:
> {code:xml}
> <region name="Data" refid="PARTITION">
>   <region-attributes>
>     <entry-idle-time>
>       <expiration-attributes timeout="60" action="destroy" />
>     </entry-idle-time>
>     <partition-attributes redundant-copies="1" />
>     <eviction-attributes>
>       <lru-entry-count maximum="10" action="local-destroy" />
>     </eviction-attributes>
>   </region-attributes>
> </region>
> {code}
> In this setting, the data held by the cache server is different. Then, 
> inconsistent results are returned depending on the server to be connected. 
> Eviction of the partition region can only select local-destroy or 
> overflow-to-disk. On the other hand, it is written that the expire chapter of 
> the document can not use local-destroy, local-invalidate in the partition 
> region. Likewise, I think that data inconsistency will occur even with the 
> settings like this time.
> Below is the test code:
> [https://github.com/masaki-yamakawa/geode/blob/bug-partition-local-destroy/geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/BugExpireAndEvictionDUnitTest.java]
> I think that it is necessary to add a check at the time of region creation or 
> write it in the document.
>  
> **
> Problem: currently eviction-action must be either 'local-destroy' or 
> 'overflow-to-disk'
> ex: <expiration-attributes timeout="60" action="local-destroy" />
> Solution: This story is to add the additional option "distributed-destroy" as 
> an action setting for any eviction type. 
> This will enable a local destroy action to be distributed across the cluster 
> (currently this does not exist)
>  
> Acceptance: can set this on region configuration via cache.xml, API or gfsh
> gfsh help and docs have been updated
>   
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to