spring-projects / spring-data-geode

Spring Data support for Apache Geode
Apache License 2.0
50 stars 37 forks source link

Improve GemfireCache.clear() to take GemFire Cache and Region type into consideration [DATAGEODE-265] #313

Open spring-projects-issues opened 4 years ago

spring-projects-issues commented 4 years ago

John Blum opened DATAGEODE-265 and commented

Currently, when a developer uses Spring's Cache Abstraction with Apache Geode as the "caching provider", to enable caching in his/her @Service components, if the developer includes a @Service method to evict all entries, like so...

@CacheEvict(cacheNames="...", allEntries=true)
public void wipeCaches() {
  logger.info("Wiped all Caches");
  ...
}

SDG's current implementation of Cache.clear() will fail with an UnsupportedOperationException on a PARTITION Region. This is because Map.clear() is not supported on PARTITION Regions.

Additionally, clear() would not work if the Region is a client Region.

This JIRA was created to add more intelligence to SDG's GemfireCache.clear() operation


Reference URL: https://jira.spring.io/browse/SGF-557

spring-projects-issues commented 4 years ago

John Blum commented

A nice alternative would be for Apache Geode to include support for Map.clear() on PARTITION Regions, just like for REPLICATE Regions. Effectively, [o.a.g.c.Region.clear()](https://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/Region.html#clear--) could just call [o.a.g.c.Region.removeAll()](https://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/Region.html#removeAll-java.util.Collection-) when the Region is PARTITION

spring-projects-issues commented 4 years ago

John Blum commented

See GEODE-788

spring-projects-issues commented 4 years ago

Jens Deppe commented

Also see: https://cwiki.apache.org/confluence/display/GEODE/Support+for+clear+operation+on+partitioned+region