This is an automated email from the ASF dual-hosted git repository.

jchen21 pushed a commit to branch feature/GEODE-7681
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-7681 by this 
push:
     new c992898  Initiate clear from both client and server
c992898 is described below

commit c992898338687a129ff1510c6f114795758eda06
Author: Jianxia Chen <[email protected]>
AuthorDate: Fri Mar 6 12:35:50 2020 -0800

    Initiate clear from both client and server
    
    Authored-by: Jianxia Chen <[email protected]>
---
 ...PartitionedRegionClearPerformanceDUnitTest.java | 222 +++++++--------------
 1 file changed, 75 insertions(+), 147 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
index 72cc36b..f9b0cc1 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionClearPerformanceDUnitTest.java
@@ -18,9 +18,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.IntStream;
 
 import junitparams.JUnitParamsRunner;
@@ -28,7 +26,6 @@ import junitparams.Parameters;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.TestName;
 import org.junit.runner.RunWith;
 
 import org.apache.geode.cache.Cache;
@@ -91,38 +88,42 @@ public class PartitionedRegionClearPerformanceDUnitTest 
implements Serializable
   }
 
   private void populateRegion() {
-    server1.invoke(() -> {
-      Region region = ClusterStartupRule.getCache().getRegion("/" + 
regionName);
+    client.invoke(() -> {
+      Region clientRegion = ClusterStartupRule.getClientCache().getRegion("/" 
+ regionName);
       Map<String, String> entries = new HashMap<>();
       IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, 
"value-" + i));
       entries.entrySet().forEach(e -> {
-        region.put(e.getKey(), e.getValue());
+        clientRegion.put(e.getKey(), e.getValue());
       });
     });
   }
 
-  @Test
-  @Parameters({"true", "false"})
-  public void testNonPersistentNonRedundant(boolean isClient) {
-    createRegionInCluster(RegionShortcut.PARTITION, 113, 0);
-    populateRegion();
+  private void assertRegionSizeOnServer(int size) {
+    server1.invoke(()-> {
+      Region region = ClusterStartupRule.getCache().getRegion(regionName);
+      assertThat(region.size()).isEqualTo(size);
+    });
+  }
+
+  private void assertRegionAttributesOnServer(int numBuckets, boolean 
persistent, int redundancy) {
     server1.invoke(() -> {
       Region region = ClusterStartupRule.getCache().getRegion(regionName);
-      assertThat(region.size()).isEqualTo(numEntries);
-      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
-      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(0);
+      
assertThat(region.getAttributes().getPartitionAttributes().getTotalNumBuckets()).isEqualTo(numBuckets);
+      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isEqualTo(persistent);
+      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(redundancy);
     });
+  }
+
+  private void doRegionClear(String methodName, boolean isClient) {
     if (isClient) {
       client.invoke(() -> {
         Region clientRegion = 
ClusterStartupRule.getClientCache().getRegion(regionName);
         long startTime = System.currentTimeMillis();
-        Set keys = new HashSet<>();
-        IntStream.range(0, numEntries).forEach(i -> keys.add("key-" + i));
-        clientRegion.removeAll(keys); // should be clientRegion.clear();
+        clientRegion.removeAll(clientRegion.keySet()); // should be 
clientRegion.clear();
         long endTime = System.currentTimeMillis();
         System.out.println(
             "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-                + " milliseconds to clear. " + " isClient=" + isClient);
+                + " milliseconds to clear. methodName=" + methodName + " 
isClient=" + isClient);
         assertThat(clientRegion.size()).isEqualTo(0);
       });
     } else {
@@ -133,159 +134,86 @@ public class PartitionedRegionClearPerformanceDUnitTest 
implements Serializable
         long endTime = System.currentTimeMillis();
         System.out.println(
             "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-                + " milliseconds to clear. " + " isClient=" + isClient);
+                + " milliseconds to clear. methodName=" + methodName + " 
isClient=" + isClient);
       });
     }
-    server1.invoke(()-> {
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-      assertThat(region.size()).isEqualTo(0);
-    });
   }
-/*
-  @Test
-  public void testRedundancyOneNonPersistent() {
-    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 1);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, 
"value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
 
-      assertThat(region.size()).isEqualTo(numEntries);
-      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
-      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(1);
+  @Test
+  @Parameters({"true", "false"})
+  public void testNonPersistentNonRedundant(boolean isClient) {
+    createRegionInCluster(RegionShortcut.PARTITION, 113, 0);
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, false, 0);
+    doRegionClear("testNonPersistentNonRedundant", isClient);
+    assertRegionSizeOnServer(0);
+  }
 
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+  @Test
+  @Parameters({"true", "false"})
+  public void testRedundancyOneNonPersistent(boolean isClient) {
+    createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 1);
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, false, 1);
+    doRegionClear("testRedundancyOneNonPersistent", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testRedundancyTwoNonPersistent() {
+  @Parameters({"true", "false"})
+  public void testRedundancyTwoNonPersistent(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT, 113, 2);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, 
"value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isFalse();
-      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, false, 2);
+    doRegionClear("testRedundancyTwoNonPersistent", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testPersistentNonRedundant() {
+  @Parameters({"true", "false"})
+  public void testPersistentNonRedundant(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_PERSISTENT, 113, 0);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, 
"value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(0);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, true, 0);
+    doRegionClear("testPersistentNonRedundant", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testPersistentRedundancyOne() {
+  @Parameters({"true", "false"})
+  public void testPersistentRedundancyOne(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 113, 
1);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, 
"value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(1);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, true, 1);
+    doRegionClear("testPersistentRedundancyOne", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testPersistentRedundancyTwo() {
+  @Parameters({"true", "false"})
+  public void testPersistentRedundancyTwo(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 113, 
2);
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, 
"value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(113, true, 2);
+    doRegionClear("testPersistentRedundancyTwo", isClient);
+    assertRegionSizeOnServer(0);
   }
 
   @Test
-  public void testOneBucketPersistentRedundancyTwo() {
+  @Parameters({"true", "false"})
+  public void testOneBucketPersistentRedundancyTwo(boolean isClient) {
     createRegionInCluster(RegionShortcut.PARTITION_REDUNDANT_PERSISTENT, 1, 2);
-
-    server1.invoke(() -> {
-      Map<String, String> entries = new HashMap<>();
-      IntStream.range(0, numEntries).forEach(i -> entries.put("key-" + i, 
"value-" + i));
-      populateRegion(regionName, entries);
-
-      Region region = ClusterStartupRule.getCache().getRegion(regionName);
-
-      assertThat(region.size()).isEqualTo(numEntries);
-      
assertThat(region.getAttributes().getPartitionAttributes().getTotalNumBuckets()).isEqualTo(1);
-      
assertThat(region.getAttributes().getDataPolicy().withPersistence()).isTrue();
-      
assertThat(region.getAttributes().getPartitionAttributes().getRedundantCopies()).isEqualTo(2);
-
-      long startTime = System.currentTimeMillis();
-      region.removeAll(entries.keySet()); // should be region.clear();
-      long endTime = System.currentTimeMillis();
-      System.out.println(
-          "Partitioned region with " + numEntries + " entries takes " + 
(endTime - startTime)
-              + " milliseconds to clear.");
-      assertThat(region.size()).isEqualTo(0);
-    });
+    populateRegion();
+    assertRegionSizeOnServer(numEntries);
+    assertRegionAttributesOnServer(1, true, 2);
+    doRegionClear("testOneBucketPersistentRedundancyTwo", isClient);
+    assertRegionSizeOnServer(0);
   }
-*/
+
 }

Reply via email to