Skip to content

Commit a1437fd

Browse files
authored
Revert "GEODE-7504: region eviction support (apache#4386)" (apache#4421)
This reverts commit 332e3f0.
1 parent b81eef8 commit a1437fd

File tree

13 files changed

+38
-696
lines changed

13 files changed

+38
-696
lines changed

geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RegionManagementDunitTest.java

-52
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,9 @@
2727
import org.junit.Test;
2828

2929
import org.apache.geode.cache.Cache;
30-
import org.apache.geode.cache.EvictionAction;
31-
import org.apache.geode.cache.EvictionAlgorithm;
32-
import org.apache.geode.cache.EvictionAttributes;
3330
import org.apache.geode.cache.ExpirationAction;
3431
import org.apache.geode.cache.RegionAttributes;
3532
import org.apache.geode.cache.configuration.CacheConfig;
36-
import org.apache.geode.cache.configuration.EnumActionDestroyOverflow;
3733
import org.apache.geode.cache.configuration.RegionAttributesType;
3834
import org.apache.geode.cache.configuration.RegionConfig;
3935
import org.apache.geode.management.api.ClusterManagementRealizationResult;
@@ -281,52 +277,4 @@ public void createRegionWithExpiration() throws Exception {
281277
assertThat(expirations.get(1).getAction()).isEqualTo(Region.ExpirationAction.INVALIDATE);
282278
assertThat(expirations.get(1).getType()).isEqualTo(Region.ExpirationType.ENTRY_TIME_TO_LIVE);
283279
}
284-
285-
@Test
286-
public void createRegionWithEviction() {
287-
Region region = new Region();
288-
String regionName = "createRegionWithEviction";
289-
region.setName(regionName);
290-
region.setType(RegionType.REPLICATE);
291-
Region.Eviction eviction = new Region.Eviction();
292-
eviction.setAction(Region.EvictionAction.OVERFLOW_TO_DISK);
293-
eviction.setEntryCount(100);
294-
region.setEviction(eviction);
295-
296-
assertManagementResult(cms.create(region)).isSuccessful();
297-
298-
locator.invoke(() -> {
299-
CacheConfig cacheConfig =
300-
ClusterStartupRule.getLocator().getConfigurationPersistenceService()
301-
.getCacheConfig("cluster");
302-
RegionConfig regionConfig = find(cacheConfig.getRegions(), regionName);
303-
RegionAttributesType regionAttributes = regionConfig.getRegionAttributes();
304-
RegionAttributesType.EvictionAttributes evictionAttributes =
305-
regionAttributes.getEvictionAttributes();
306-
assertThat(evictionAttributes).isNotNull();
307-
assertThat(evictionAttributes.getLruEntryCount()).isNotNull();
308-
assertThat(evictionAttributes.getLruEntryCount().getAction()).isEqualTo(
309-
EnumActionDestroyOverflow.OVERFLOW_TO_DISK);
310-
assertThat(evictionAttributes.getLruEntryCount().getMaximum()).isEqualTo("100");
311-
});
312-
313-
server1.invoke(() -> {
314-
Cache cache = ClusterStartupRule.getCache();
315-
org.apache.geode.cache.Region actualRegion = cache.getRegion(regionName);
316-
RegionAttributes attributes = actualRegion.getAttributes();
317-
EvictionAttributes evictionAttributes = attributes.getEvictionAttributes();
318-
assertThat(evictionAttributes).isNotNull();
319-
assertThat(evictionAttributes.getAlgorithm()).isEqualTo(EvictionAlgorithm.LRU_ENTRY);
320-
assertThat(evictionAttributes.getAction()).isEqualTo(EvictionAction.OVERFLOW_TO_DISK);
321-
assertThat(evictionAttributes.getMaximum()).isEqualTo(100);
322-
323-
});
324-
325-
Region regionResult = cms.get(region).getConfigResult();
326-
Region.Eviction eviction2 = regionResult.getEviction();
327-
assertThat(eviction2).isNotNull();
328-
assertThat(eviction2.getType()).isEqualTo(Region.EvictionType.ENTRY_COUNT);
329-
assertThat(eviction2.getEntryCount()).isEqualTo(100);
330-
assertThat(eviction2.getAction()).isEqualTo(Region.EvictionAction.OVERFLOW_TO_DISK);
331-
}
332280
}

geode-assembly/src/integrationTest/resources/assembly_content.txt

-3
Original file line numberDiff line numberDiff line change
@@ -746,9 +746,6 @@ javadoc/org/apache/geode/management/configuration/Index.html
746746
javadoc/org/apache/geode/management/configuration/Links.html
747747
javadoc/org/apache/geode/management/configuration/Member.html
748748
javadoc/org/apache/geode/management/configuration/Pdx.html
749-
javadoc/org/apache/geode/management/configuration/Region.Eviction.html
750-
javadoc/org/apache/geode/management/configuration/Region.EvictionAction.html
751-
javadoc/org/apache/geode/management/configuration/Region.EvictionType.html
752749
javadoc/org/apache/geode/management/configuration/Region.Expiration.html
753750
javadoc/org/apache/geode/management/configuration/Region.ExpirationAction.html
754751
javadoc/org/apache/geode/management/configuration/Region.ExpirationType.html

geode-core/src/main/java/org/apache/geode/cache/configuration/DeclarableType.java

+5-11
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@ public DeclarableType(String className, Properties properties) {
8585
}
8686

8787
this.className = className;
88-
setParameters(properties);
88+
89+
if (properties != null) {
90+
parameters = properties.stringPropertyNames().stream()
91+
.map(k -> new ParameterType(k, properties.getProperty(k))).collect(Collectors.toList());
92+
}
8993
}
9094

9195
/**
@@ -114,16 +118,6 @@ public List<ParameterType> getParameters() {
114118
return this.parameters;
115119
}
116120

117-
public void setParameters(Properties properties) {
118-
if (properties == null) {
119-
this.parameters = null;
120-
return;
121-
}
122-
123-
parameters = properties.stringPropertyNames().stream()
124-
.map(k -> new ParameterType(k, properties.getProperty(k))).collect(Collectors.toList());
125-
}
126-
127121
@Override
128122
public boolean equals(Object o) {
129123
if (this == o) {

geode-core/src/main/java/org/apache/geode/cache/configuration/RegionAttributesType.java

+3-18
Original file line numberDiff line numberDiff line change
@@ -2060,7 +2060,7 @@ public static class EvictionAttributes implements Serializable {
20602060

20612061
public static EvictionAttributes generate(String evictionAction,
20622062
Integer maxMemory, Integer maxEntryCount,
2063-
ClassName objectSizer) {
2063+
String objectSizer) {
20642064
if (evictionAction == null && maxMemory == null && maxEntryCount == null
20652065
&& objectSizer == null) {
20662066
return null;
@@ -2074,19 +2074,13 @@ public static EvictionAttributes generate(String evictionAction,
20742074
LruHeapPercentage heapPercentage =
20752075
new LruHeapPercentage();
20762076
heapPercentage.setAction(action);
2077-
if (objectSizer != null) {
2078-
heapPercentage.setClassName(objectSizer.getClassName());
2079-
heapPercentage.setParameters(objectSizer.getInitProperties());
2080-
}
2077+
heapPercentage.setClassName(objectSizer);
20812078
evictionAttributes.setLruHeapPercentage(heapPercentage);
20822079
} else if (maxMemory != null) {
20832080
LruMemorySize memorySize =
20842081
new LruMemorySize();
20852082
memorySize.setAction(action);
2086-
if (objectSizer != null) {
2087-
memorySize.setClassName(objectSizer.getClassName());
2088-
memorySize.setParameters(objectSizer.getInitProperties());
2089-
}
2083+
memorySize.setClassName(objectSizer);
20902084
memorySize.setMaximum(maxMemory.toString());
20912085
evictionAttributes.setLruMemorySize(memorySize);
20922086
} else {
@@ -2099,15 +2093,6 @@ public static EvictionAttributes generate(String evictionAction,
20992093
return evictionAttributes;
21002094
}
21012095

2102-
public static EvictionAttributes generate(String evictionAction,
2103-
Integer maxMemory, Integer maxEntryCount,
2104-
String objectSizer) {
2105-
if (objectSizer == null) {
2106-
return generate(evictionAction, maxMemory, maxEntryCount, (ClassName) null);
2107-
}
2108-
return generate(evictionAction, maxMemory, maxEntryCount, new ClassName(objectSizer));
2109-
}
2110-
21112096
/**
21122097
* Gets the value of the lruEntryCount property.
21132098
*

geode-core/src/main/java/org/apache/geode/management/internal/configuration/converters/RegionConverter.java

+1-79
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131
import org.apache.geode.management.configuration.RegionType;
3232

3333
public class RegionConverter extends ConfigurationConverter<Region, RegionConfig> {
34-
private final ClassNameConverter classNameConverter = new ClassNameConverter();
35-
3634
@Override
3735
protected Region fromNonNullXmlObject(RegionConfig xmlObject) {
3836
Region region = new Region();
@@ -76,20 +74,6 @@ protected Region fromNonNullXmlObject(RegionConfig xmlObject) {
7674
if (!expirations.isEmpty()) {
7775
region.setExpirations(expirations);
7876
}
79-
80-
if (regionAttributes.getEvictionAttributes() != null) {
81-
RegionAttributesType.EvictionAttributes evictionAttributes =
82-
regionAttributes.getEvictionAttributes();
83-
if (evictionAttributes.getLruMemorySize() != null) {
84-
region.setEviction(convertFrom(evictionAttributes.getLruMemorySize()));
85-
}
86-
if (evictionAttributes.getLruEntryCount() != null) {
87-
region.setEviction(convertFrom(evictionAttributes.getLruEntryCount()));
88-
}
89-
if (evictionAttributes.getLruHeapPercentage() != null) {
90-
region.setEviction(convertFrom(evictionAttributes.getLruHeapPercentage()));
91-
}
92-
}
9377
}
9478

9579
return region;
@@ -109,6 +93,7 @@ protected RegionConfig fromNonNullConfigObject(Region configObject) {
10993
attributesType.setDiskStoreName(configObject.getDiskStoreName());
11094
attributesType.setKeyConstraint(configObject.getKeyConstraint());
11195
attributesType.setValueConstraint(configObject.getValueConstraint());
96+
region.setRegionAttributes(attributesType);
11297

11398
if (configObject.getRedundantCopies() != null) {
11499
RegionAttributesType.PartitionAttributes partitionAttributes =
@@ -130,72 +115,9 @@ protected RegionConfig fromNonNullConfigObject(Region configObject) {
130115
}
131116
}
132117
}
133-
134-
if (configObject.getEviction() != null) {
135-
attributesType.setEvictionAttributes(convertFrom(configObject.getEviction()));
136-
}
137-
138-
region.setRegionAttributes(attributesType);
139118
return region;
140119
}
141120

142-
private RegionAttributesType.EvictionAttributes convertFrom(Region.Eviction eviction) {
143-
return RegionAttributesType.EvictionAttributes.generate(getEvictionActionString(eviction),
144-
eviction.getMemorySizeMb(), eviction.getEntryCount(), eviction.getObjectSizer());
145-
}
146-
147-
private String getEvictionActionString(Region.Eviction eviction) {
148-
if (eviction.getAction() == null) {
149-
return "local-destroy";
150-
} else {
151-
switch (eviction.getAction()) {
152-
case LOCAL_DESTROY:
153-
return "local-destroy";
154-
case OVERFLOW_TO_DISK:
155-
return "overflow-to-disk";
156-
default:
157-
throw new IllegalStateException("Unhandled eviction action: " + eviction.getAction());
158-
}
159-
}
160-
}
161-
162-
private Region.EvictionAction getEvictionAction(EnumActionDestroyOverflow evictionAction) {
163-
switch (evictionAction) {
164-
case LOCAL_DESTROY:
165-
return Region.EvictionAction.LOCAL_DESTROY;
166-
case OVERFLOW_TO_DISK:
167-
return Region.EvictionAction.OVERFLOW_TO_DISK;
168-
default:
169-
throw new IllegalStateException("Unhandled eviction action xml: " + evictionAction);
170-
}
171-
}
172-
173-
Region.Eviction convertFrom(
174-
RegionAttributesType.EvictionAttributes.LruMemorySize evictionAttributes) {
175-
Region.Eviction eviction = new Region.Eviction();
176-
eviction.setAction(getEvictionAction(evictionAttributes.getAction()));
177-
eviction.setMemorySizeMb(Integer.parseInt(evictionAttributes.getMaximum()));
178-
eviction.setObjectSizer(classNameConverter.fromXmlObject(evictionAttributes));
179-
return eviction;
180-
}
181-
182-
Region.Eviction convertFrom(
183-
RegionAttributesType.EvictionAttributes.LruEntryCount evictionAttributes) {
184-
Region.Eviction eviction = new Region.Eviction();
185-
eviction.setAction(getEvictionAction(evictionAttributes.getAction()));
186-
eviction.setEntryCount(Integer.parseInt(evictionAttributes.getMaximum()));
187-
return eviction;
188-
}
189-
190-
Region.Eviction convertFrom(
191-
RegionAttributesType.EvictionAttributes.LruHeapPercentage evictionAttributes) {
192-
Region.Eviction eviction = new Region.Eviction();
193-
eviction.setAction(getEvictionAction(evictionAttributes.getAction()));
194-
eviction.setObjectSizer(classNameConverter.fromXmlObject(evictionAttributes));
195-
eviction.setType(Region.EvictionType.HEAP_PERCENTAGE);
196-
return eviction;
197-
}
198-
199121
RegionAttributesType.ExpirationAttributesType convertFrom(Region.Expiration expiration) {
200122
RegionAttributesType.ExpirationAttributesType xmlExpiration =
201123
new RegionAttributesType.ExpirationAttributesType();

geode-core/src/main/java/org/apache/geode/management/internal/configuration/validators/RegionConfigValidator.java

-33
Original file line numberDiff line numberDiff line change
@@ -98,39 +98,6 @@ private void validateCreate(Region config) {
9898
existingTypes.add(expiration.getType());
9999
}
100100
}
101-
102-
// validate eviction
103-
validateEviction(config.getEviction());
104-
}
105-
106-
private void validateEviction(Region.Eviction eviction) {
107-
if (eviction == null) {
108-
return;
109-
}
110-
111-
Region.EvictionType type = eviction.getType();
112-
if (type == null) {
113-
throw new IllegalArgumentException("Eviction type must be set.");
114-
}
115-
116-
switch (type) {
117-
case ENTRY_COUNT:
118-
if (eviction.getEntryCount() == null) {
119-
throw new IllegalArgumentException(
120-
"EntryCount must be set for: " + type);
121-
}
122-
if (eviction.getObjectSizer() != null) {
123-
throw new IllegalArgumentException(
124-
"ObjectSizer must not be set for: " + type);
125-
}
126-
break;
127-
case MEMORY_SIZE:
128-
if (eviction.getMemorySizeMb() == null) {
129-
throw new IllegalArgumentException(
130-
"MemorySizeMb must be set for: " + type);
131-
}
132-
break;
133-
}
134101
}
135102

136103
private void validate(Region.Expiration expiration) {

geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-management-serializables.txt

+2-5
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,14 @@ org/apache/geode/management/configuration/GroupableConfiguration,false,group:jav
88
org/apache/geode/management/configuration/Index,false,expression:java/lang/String,keyIndex:java/lang/Boolean,name:java/lang/String,regionPath:java/lang/String
99
org/apache/geode/management/configuration/Member,false,id:java/lang/String
1010
org/apache/geode/management/configuration/Pdx,false,autoSerializer:org/apache/geode/management/configuration/AutoSerializer,diskStoreName:java/lang/String,ignoreUnreadFields:java/lang/Boolean,pdxSerializer:org/apache/geode/management/configuration/ClassName,readSerialized:java/lang/Boolean
11-
org/apache/geode/management/configuration/Region,false,diskStoreName:java/lang/String,eviction:org/apache/geode/management/configuration/Region$Eviction,expirations:java/util/List,keyConstraint:java/lang/String,name:java/lang/String,redundantCopies:java/lang/Integer,type:org/apache/geode/management/configuration/RegionType,valueConstraint:java/lang/String
12-
org/apache/geode/management/configuration/Region$Eviction,false,action:org/apache/geode/management/configuration/Region$EvictionAction,limit:java/lang/Integer,objectSizer:org/apache/geode/management/configuration/ClassName,type:org/apache/geode/management/configuration/Region$EvictionType
13-
org/apache/geode/management/configuration/Region$EvictionAction,false
14-
org/apache/geode/management/configuration/Region$EvictionType,false
11+
org/apache/geode/management/configuration/Region,false,diskStoreName:java/lang/String,expirations:java/util/List,keyConstraint:java/lang/String,name:java/lang/String,redundantCopies:java/lang/Integer,type:org/apache/geode/management/configuration/RegionType,valueConstraint:java/lang/String
1512
org/apache/geode/management/configuration/Region$Expiration,false,action:org/apache/geode/management/configuration/Region$ExpirationAction,timeInSeconds:java/lang/Integer,type:org/apache/geode/management/configuration/Region$ExpirationType
1613
org/apache/geode/management/configuration/Region$ExpirationAction,false
1714
org/apache/geode/management/configuration/Region$ExpirationType,false
1815
org/apache/geode/management/configuration/RegionType,false
1916
org/apache/geode/management/runtime/CacheServerInfo,true,1,bindAddress:java/lang/String,isRunning:boolean,maxConnections:int,maxThreads:int,port:int
2017
org/apache/geode/management/runtime/GatewayReceiverInfo,false,bindAddress:java/lang/String,connectedSenders:java/lang/String[],hostnameForSenders:java/lang/String,port:int,running:boolean,senderCount:int
2118
org/apache/geode/management/runtime/MemberInformation,true,1,cacheServerList:java/util/List,cacheXmlFilePath:java/lang/String,clientCount:int,cpuUsage:double,groups:java/lang/String,heapUsage:long,host:java/lang/String,hostedRegions:java/util/Set,httpServiceBindAddress:java/lang/String,httpServicePort:int,id:java/lang/String,initHeapSize:long,isCoordinator:boolean,isSecured:boolean,isServer:boolean,locatorPort:int,locators:java/lang/String,logFilePath:java/lang/String,maxHeapSize:long,offHeapMemorySize:java/lang/String,processId:int,serverBindAddress:java/lang/String,statArchiveFilePath:java/lang/String,status:java/lang/String,webSSL:boolean,workingDirPath:java/lang/String
22-
org/apache/geode/management/runtime/PdxInfo,false,diskStoreName:java/lang/String,ignoreUnreadFields:boolean,pdxSerializer:java/lang/String,readSerialized:boolean
19+
org/apache/geode/management/runtime/PdxInfo,false,diskStoreName:java/lang/String,ignoreUnreadFields:boolean,pdxSerializer:java/lang/String,readSerialized:boolean
2320
org/apache/geode/management/runtime/RuntimeInfo,false,memberName:java/lang/String
2421
org/apache/geode/management/runtime/RuntimeRegionInfo,false,entryCount:long

geode-core/src/test/java/org/apache/geode/cache/configuration/RegionAttributesTypeTest.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -108,35 +108,34 @@ public void expirationAttributesDetail() throws Exception {
108108

109109
@Test
110110
public void generateEvictionAttributes() {
111-
EvictionAttributes evictionAttributes =
112-
EvictionAttributes.generate(null, null, null, (String) null);
111+
EvictionAttributes evictionAttributes = EvictionAttributes.generate(null, null, null, null);
113112
assertThat(evictionAttributes).isNull();
114113

115-
assertThatThrownBy(() -> EvictionAttributes.generate(null, 8, null, (String) null))
114+
assertThatThrownBy(() -> EvictionAttributes.generate(null, 8, null, null))
116115
.isInstanceOf(IllegalArgumentException.class);
117116

118-
evictionAttributes = EvictionAttributes.generate("local-destroy", null, null, (String) null);
117+
evictionAttributes = EvictionAttributes.generate("local-destroy", null, null, null);
119118
assertThat(evictionAttributes.getLruHeapPercentage().getAction().value())
120119
.isEqualTo("local-destroy");
121120
assertThat(evictionAttributes.getLruMemorySize()).isNull();
122121
assertThat(evictionAttributes.getLruEntryCount()).isNull();
123122

124-
evictionAttributes = EvictionAttributes.generate("local-destroy", 10, null, (String) null);
123+
evictionAttributes = EvictionAttributes.generate("local-destroy", 10, null, null);
125124
assertThat(evictionAttributes.getLruHeapPercentage()).isNull();
126125
assertThat(evictionAttributes.getLruMemorySize().getMaximum()).isEqualTo("10");
127126
assertThat(evictionAttributes.getLruMemorySize().getAction().value())
128127
.isEqualTo("local-destroy");
129128
assertThat(evictionAttributes.getLruEntryCount()).isNull();
130129

131130
// maxEntryCount is ignored when maxMemory is specified
132-
evictionAttributes = EvictionAttributes.generate("local-destroy", 10, 20, (String) null);
131+
evictionAttributes = EvictionAttributes.generate("local-destroy", 10, 20, null);
133132
assertThat(evictionAttributes.getLruHeapPercentage()).isNull();
134133
assertThat(evictionAttributes.getLruMemorySize().getMaximum()).isEqualTo("10");
135134
assertThat(evictionAttributes.getLruMemorySize().getAction().value())
136135
.isEqualTo("local-destroy");
137136
assertThat(evictionAttributes.getLruEntryCount()).isNull();
138137

139-
evictionAttributes = EvictionAttributes.generate("local-destroy", null, 20, (String) null);
138+
evictionAttributes = EvictionAttributes.generate("local-destroy", null, 20, null);
140139
assertThat(evictionAttributes.getLruHeapPercentage()).isNull();
141140
assertThat(evictionAttributes.getLruMemorySize()).isNull();
142141
assertThat(evictionAttributes.getLruEntryCount().getMaximum()).isEqualTo("20");

0 commit comments

Comments
 (0)