You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2021/05/10 20:09:22 UTC

[geode-benchmarks] branch feature/redis updated: Cleanup existing test and add fix validation.

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

jbarrett pushed a commit to branch feature/redis
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git


The following commit(s) were added to refs/heads/feature/redis by this push:
     new 8db5e2c  Cleanup existing test and add fix validation.
8db5e2c is described below

commit 8db5e2c4f5388429040365a5ab1feb4c94064136
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Mon May 10 13:09:03 2021 -0700

    Cleanup existing test and add fix validation.
---
 README.md                                          |  2 +-
 .../benchmark/tasks/ExecuteFilteredFunction.java   | 26 +++++++++-----
 .../geode/benchmark/tasks/ExecuteFunction.java     | 21 +++++++++--
 .../tasks/ExecuteParameterizedFunction.java        | 25 +++++++++----
 .../org/apache/geode/benchmark/tasks/GetTask.java  | 16 +++++++--
 .../org/apache/geode/benchmark/tasks/OQLQuery.java | 42 ++++++++++++----------
 .../benchmark/tests/AbstractFunctionBenchmark.java |  3 +-
 .../benchmark/tests/AbstractPerformanceTest.java}  | 22 +++++-------
 .../geode/benchmark/tests/NoopBenchmark.java       |  3 +-
 .../tests/P2pPartitionedGetBenchmark.java          |  5 ++-
 .../tests/P2pPartitionedPutBenchmark.java          |  3 +-
 .../tests/P2pPartitionedPutBytesBenchmark.java     |  3 +-
 .../tests/P2pPartitionedPutLongBenchmark.java      |  3 +-
 .../PartitionedFunctionExecutionBenchmark.java     |  2 +-
 ...nedFunctionExecutionWithArgumentsBenchmark.java |  3 +-
 ...ionedFunctionExecutionWithFiltersBenchmark.java |  2 +-
 .../benchmark/tests/PartitionedGetBenchmark.java   |  5 ++-
 .../tests/PartitionedGetLongBenchmark.java         |  5 ++-
 .../tests/PartitionedGetStringBenchmark.java       |  3 +-
 .../tests/PartitionedIndexedQueryBenchmark.java    |  5 ++-
 .../tests/PartitionedNonIndexedQueryBenchmark.java |  5 ++-
 .../tests/PartitionedPutAllBenchmark.java          |  3 +-
 .../tests/PartitionedPutAllLongBenchmark.java      |  3 +-
 .../benchmark/tests/PartitionedPutBenchmark.java   |  3 +-
 .../tests/PartitionedPutBytesBenchmark.java        |  3 +-
 .../tests/PartitionedPutLongBenchmark.java         |  3 +-
 .../tests/PartitionedPutStringBenchmark.java       |  3 +-
 .../ReplicatedFunctionExecutionBenchmark.java      |  2 +-
 ...tedFunctionExecutionWithArgumentsBenchmark.java |  3 +-
 ...catedFunctionExecutionWithFiltersBenchmark.java |  2 +-
 .../benchmark/tests/ReplicatedGetBenchmark.java    |  5 ++-
 .../tests/ReplicatedGetLongBenchmark.java          |  5 ++-
 .../tests/ReplicatedIndexedQueryBenchmark.java     |  5 ++-
 .../tests/ReplicatedNonIndexedQueryBenchmark.java  |  5 ++-
 .../benchmark/tests/ReplicatedPutAllBenchmark.java |  3 +-
 .../tests/ReplicatedPutAllLongBenchmark.java       |  3 +-
 .../benchmark/tests/ReplicatedPutBenchmark.java    |  3 +-
 .../tests/ReplicatedPutLongBenchmark.java          |  3 +-
 .../benchmark/tests/redis/RedisBenchmark.java      |  4 +--
 .../benchmark/tests/redis/RedisPutBenchmark.java   |  1 -
 .../PartitionedFunctionExecutionBenchmarkTest.java |  3 ++
 ...unctionExecutionWithArgumentsBenchmarkTest.java |  1 +
 ...dFunctionExecutionWithFiltersBenchmarkTest.java |  4 +--
 .../tests/PartitionedGetBenchmarkTest.java         |  4 +--
 .../tests/PartitionedGetLongBenchmarkTest.java     |  4 +--
 .../PartitionedIndexedQueryBenchmarkTest.java      |  1 +
 .../PartitionedNonIndexedQueryBenchmarkTest.java   |  1 +
 .../tests/PartitionedPutAllBenchmarkTest.java      |  4 +--
 .../tests/PartitionedPutAllLongBenchmarkTest.java  |  4 +--
 .../tests/PartitionedPutBenchmarkTest.java         |  4 +--
 .../tests/PartitionedPutLongBenchmarkTest.java     |  4 +--
 .../ReplicatedFunctionExecutionBenchmarkTest.java  |  1 +
 ...unctionExecutionWithArgumentsBenchmarkTest.java |  1 +
 ...dFunctionExecutionWithFiltersBenchmarkTest.java |  1 +
 .../tests/ReplicatedGetBenchmarkTest.java          |  4 +--
 .../tests/ReplicatedGetLongBenchmarkTest.java      |  4 +--
 .../tests/ReplicatedIndexedQueryBenchmarkTest.java |  1 +
 .../ReplicatedNonIndexedQueryBenchmarkTest.java    |  1 +
 .../tests/ReplicatedPutBenchmarkTest.java          |  4 +--
 .../tests/ReplicatedPutLongBenchmarkTest.java      |  4 +--
 .../org/apache/geode/perftest/PerformanceTest.java |  1 +
 .../org/apache/geode/perftest/TestRunners.java     | 24 -------------
 62 files changed, 178 insertions(+), 168 deletions(-)

diff --git a/README.md b/README.md
index daea2c6..6e5f05a 100644
--- a/README.md
+++ b/README.md
@@ -137,7 +137,7 @@ reported by the yardstick framework.
 * Benchmark configuration class, which defines the topology of the test and
 * the initialization tasks and workload tasks for the test.
 */
-public class PartitionedPutBenchmark implements PerformanceTest {
+public class PartitionedPutBenchmark extends AbstractPerformanceTest {
 
   @Test
   public void run() throws Exception {
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFilteredFunction.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFilteredFunction.java
index 610548d..1b0c96a 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFilteredFunction.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFilteredFunction.java
@@ -14,12 +14,16 @@
  */
 package org.apache.geode.benchmark.tasks;
 
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.Serializable;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
 
 import benchmark.geode.data.FunctionWithFilter;
+import benchmark.geode.data.Portfolio;
 import org.yardstickframework.BenchmarkConfiguration;
 import org.yardstickframework.BenchmarkDriverAdapter;
 
@@ -29,17 +33,18 @@ import org.apache.geode.cache.client.ClientCache;
 import org.apache.geode.cache.client.ClientCacheFactory;
 import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionService;
-import org.apache.geode.cache.execute.ResultCollector;
 
 public class ExecuteFilteredFunction extends BenchmarkDriverAdapter implements Serializable {
 
   private final LongRange keyRange;
-  private final Function function;
+  private final boolean isValidationEnabled;
+  private final Function<Long> function;
 
-  private Region region;
+  private Region<Long, Portfolio> region;
 
-  public ExecuteFilteredFunction(final LongRange keyRange) {
+  public ExecuteFilteredFunction(final LongRange keyRange, final boolean isValidationEnabled) {
     this.keyRange = keyRange;
+    this.isValidationEnabled = isValidationEnabled;
     this.function = new FunctionWithFilter();
   }
 
@@ -55,13 +60,18 @@ public class ExecuteFilteredFunction extends BenchmarkDriverAdapter implements S
   public boolean test(Map<Object, Object> ctx) {
     final Set<Long> filterSet = Collections.singleton(keyRange.random());
     @SuppressWarnings("unchecked")
-    final ResultCollector<?, ?> resultCollector = FunctionService
+    final Object result = FunctionService
         .onRegion(region)
         .withFilter(filterSet)
-        .execute(function);
-    resultCollector.getResult();
-    return true;
+        .execute(function)
+        .getResult();
 
+    if (isValidationEnabled) {
+      assertNotNull(result);
+      assertTrue(result instanceof Portfolio);
+    }
+
+    return true;
   }
 
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFunction.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFunction.java
index 51c30de..74979be 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFunction.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteFunction.java
@@ -14,10 +14,14 @@
  */
 package org.apache.geode.benchmark.tasks;
 
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.Serializable;
 import java.util.Map;
 
 import benchmark.geode.data.BenchmarkFunction;
+import benchmark.geode.data.Portfolio;
 import org.yardstickframework.BenchmarkConfiguration;
 import org.yardstickframework.BenchmarkDriverAdapter;
 
@@ -28,9 +32,13 @@ import org.apache.geode.cache.execute.FunctionService;
 
 public class ExecuteFunction extends BenchmarkDriverAdapter implements Serializable {
 
-  private Region region;
+  private final boolean isValidationEnabled;
+
+  private Region<Long, Portfolio> region;
 
-  public ExecuteFunction() {}
+  public ExecuteFunction(final boolean isValidationEnabled) {
+    this.isValidationEnabled = isValidationEnabled;
+  }
 
   @Override
   public void setUp(BenchmarkConfiguration cfg) throws Exception {
@@ -41,7 +49,14 @@ public class ExecuteFunction extends BenchmarkDriverAdapter implements Serializa
 
   @Override
   public boolean test(final Map<Object, Object> ctx) {
-    FunctionService.onRegion(region).execute(BenchmarkFunction.class.getName()).getResult();
+    final Object result =
+        FunctionService.onRegion(region).execute(BenchmarkFunction.class.getName()).getResult();
+
+    if (isValidationEnabled) {
+      assertNotNull(result);
+      assertTrue(result instanceof Portfolio);
+    }
+
     return true;
   }
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteParameterizedFunction.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteParameterizedFunction.java
index 6065b18..b0bc014 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteParameterizedFunction.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/ExecuteParameterizedFunction.java
@@ -14,10 +14,14 @@
  */
 package org.apache.geode.benchmark.tasks;
 
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.Serializable;
 import java.util.Map;
 
 import benchmark.geode.data.FunctionWithArguments;
+import benchmark.geode.data.Portfolio;
 import org.yardstickframework.BenchmarkConfiguration;
 import org.yardstickframework.BenchmarkDriverAdapter;
 
@@ -27,17 +31,18 @@ import org.apache.geode.cache.client.ClientCache;
 import org.apache.geode.cache.client.ClientCacheFactory;
 import org.apache.geode.cache.execute.Function;
 import org.apache.geode.cache.execute.FunctionService;
-import org.apache.geode.cache.execute.ResultCollector;
 
 public class ExecuteParameterizedFunction extends BenchmarkDriverAdapter implements Serializable {
 
   private final LongRange keyRange;
-  private final Function function;
+  private final boolean isValidationEnabled;
+  private final Function<Long> function;
 
-  private Region region;
+  private Region<Long, Portfolio> region;
 
-  public ExecuteParameterizedFunction(final LongRange keyRange) {
+  public ExecuteParameterizedFunction(final LongRange keyRange, final boolean isValidationEnabled) {
     this.keyRange = keyRange;
+    this.isValidationEnabled = isValidationEnabled;
     function = new FunctionWithArguments();
   }
 
@@ -52,11 +57,17 @@ public class ExecuteParameterizedFunction extends BenchmarkDriverAdapter impleme
   @Override
   public boolean test(Map<Object, Object> ctx) {
     @SuppressWarnings("unchecked")
-    ResultCollector<?, ?> resultCollector = FunctionService
+    final Object result = FunctionService
         .onRegion(region)
         .setArguments(keyRange.random())
-        .execute(function);
-    resultCollector.getResult();
+        .execute(function)
+        .getResult();
+
+    if (isValidationEnabled) {
+      assertNotNull(result);
+      assertTrue(result instanceof Portfolio);
+    }
+
     return true;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/GetTask.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/GetTask.java
index f6d701d..641682e 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/GetTask.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/GetTask.java
@@ -17,6 +17,8 @@
 
 package org.apache.geode.benchmark.tasks;
 
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
 import java.io.Serializable;
 import java.util.Map;
 
@@ -35,11 +37,13 @@ import org.apache.geode.cache.Region;
 public class GetTask extends BenchmarkDriverAdapter implements Serializable {
 
   private final LongRange keyRange;
+  private final boolean isValidationEnabled;
 
-  private Region<Object, Object> region;
+  private Region<Long, Object> region;
 
-  public GetTask(LongRange keyRange) {
+  public GetTask(LongRange keyRange, final boolean isValidationEnabled) {
     this.keyRange = keyRange;
+    this.isValidationEnabled = isValidationEnabled;
   }
 
   @Override
@@ -53,7 +57,13 @@ public class GetTask extends BenchmarkDriverAdapter implements Serializable {
   @Override
   public boolean test(Map<Object, Object> ctx) throws Exception {
     final long key = keyRange.random();
-    region.get(key);
+    final Object result = region.get(key);
+
+    if (isValidationEnabled) {
+      assertNotNull(result);
+    }
+
+
     return true;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/OQLQuery.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/OQLQuery.java
index eb1e3e0..16fcdaa 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/OQLQuery.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/OQLQuery.java
@@ -14,6 +14,8 @@
  */
 package org.apache.geode.benchmark.tasks;
 
+import static org.apache.geode.util.internal.UncheckedUtils.uncheckedCast;
+
 import java.io.Serializable;
 import java.util.Map;
 import java.util.concurrent.ThreadLocalRandom;
@@ -25,7 +27,6 @@ import org.yardstickframework.BenchmarkConfiguration;
 import org.yardstickframework.BenchmarkDriverAdapter;
 
 import org.apache.geode.benchmark.LongRange;
-import org.apache.geode.cache.Region;
 import org.apache.geode.cache.client.ClientCache;
 import org.apache.geode.cache.client.ClientCacheFactory;
 import org.apache.geode.cache.query.Query;
@@ -34,42 +35,48 @@ import org.apache.geode.perftest.jvms.RemoteJVMFactory;
 
 public class OQLQuery extends BenchmarkDriverAdapter implements Serializable {
   private static final Logger logger = LoggerFactory.getLogger(RemoteJVMFactory.class);
-  private Region<Object, Object> region;
-  private LongRange keyRange;
-  private long queryRange;
-  private ClientCache cache;
+
+  private final LongRange keyRange;
+  private final long queryRange;
+  private final boolean isValidationEnabled;
+
   private Query query;
 
 
-  public OQLQuery(LongRange keyRange, long queryRange) {
+  public OQLQuery(final LongRange keyRange, final long queryRange,
+      final boolean isValidationEnabled) {
     this.keyRange = keyRange;
     this.queryRange = queryRange;
+    this.isValidationEnabled = isValidationEnabled;
   }
 
   @Override
   public void setUp(BenchmarkConfiguration cfg) throws Exception {
     super.setUp(cfg);
-    cache = ClientCacheFactory.getAnyInstance();
-    region = cache.getRegion("region");
+    final ClientCache cache = ClientCacheFactory.getAnyInstance();
     query =
         cache.getQueryService().newQuery("SELECT * FROM /region r WHERE r.ID >= $1 AND r.ID < $2");
   }
 
   @Override
-  public boolean test(Map<Object, Object> ctx) throws Exception {
-    long minId =
+  public boolean test(final Map<Object, Object> ctx) throws Exception {
+    final long minId =
         ThreadLocalRandom.current().nextLong(keyRange.getMin(), keyRange.getMax() - queryRange);
-    long maxId = minId + queryRange;
+    final long maxId = minId + queryRange;
 
-    SelectResults results = executeQuery(minId, maxId);
-    verifyResults(results, minId, maxId);
+    final Object result = query.execute(minId, maxId);
+
+    if (isValidationEnabled) {
+      verifyResults(uncheckedCast(result), minId, maxId);
+    }
 
     return true;
   }
 
-  private void verifyResults(SelectResults results, long minId, long maxId) throws Exception {
-    for (Object result : results) {
-      long id = ((Portfolio) result).getID();
+  private void verifyResults(final SelectResults<Portfolio> results, final long minId,
+      final long maxId) throws Exception {
+    for (final Portfolio result : results) {
+      final long id = result.getID();
       if (id < minId || id > maxId) {
         throw new Exception("Invalid Portfolio object retrieved [min =" + minId + " max =" + maxId
             + ") Portfolio retrieved =" + result);
@@ -77,7 +84,4 @@ public class OQLQuery extends BenchmarkDriverAdapter implements Serializable {
     }
   }
 
-  private SelectResults executeQuery(long minId, long maxId) throws Exception {
-    return (SelectResults) query.execute(minId, maxId);
-  }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/AbstractFunctionBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/AbstractFunctionBenchmark.java
index 635b377..ba20505 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/AbstractFunctionBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/AbstractFunctionBenchmark.java
@@ -25,10 +25,9 @@ import org.apache.geode.benchmark.LongRange;
 import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
 import org.apache.geode.benchmark.tasks.RegisterFunction;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 
-abstract class AbstractFunctionBenchmark implements PerformanceTest {
+abstract class AbstractFunctionBenchmark extends AbstractPerformanceTest {
   private LongRange keyRange = new LongRange(0, 1000000);
 
   public final void setKeyRange(LongRange keyRange) {
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmarkTest.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/AbstractPerformanceTest.java
similarity index 63%
copy from geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmarkTest.java
copy to geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/AbstractPerformanceTest.java
index 6b4d1df..9593a6a 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmarkTest.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/AbstractPerformanceTest.java
@@ -12,23 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.benchmark.tests;
-
-import java.io.File;
 
-import org.junit.jupiter.api.io.TempDir;
+package org.apache.geode.benchmark.tests;
 
-import org.apache.geode.benchmark.LongRange;
-import org.apache.geode.perftest.TestRunners;
+import org.apache.geode.perftest.PerformanceTest;
 
-public class PartitionedFunctionExecutionBenchmarkTest {
+public abstract class AbstractPerformanceTest implements PerformanceTest {
+  private boolean validationEnabled = GeodeBenchmark.isValidationEnabled();
 
-  @TempDir
-  File folder;
+  public void setValidationEnabled(final boolean validationEnabled) {
+    this.validationEnabled = validationEnabled;
+  }
 
-  public void benchmarkRunsSuccessfully() throws Exception {
-    PartitionedFunctionExecutionBenchmark test = new PartitionedFunctionExecutionBenchmark();
-    test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder).runTest(test);
+  public boolean isValidationEnabled() {
+    return validationEnabled;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/NoopBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/NoopBenchmark.java
index dbc9a12..444d790 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/NoopBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/NoopBenchmark.java
@@ -24,14 +24,13 @@ import static org.apache.geode.benchmark.topology.Roles.CLIENT;
 import org.junit.jupiter.api.Test;
 
 import org.apache.geode.benchmark.tasks.NoopTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of gets on a partitioned region.
  */
-public class NoopBenchmark implements PerformanceTest {
+public class NoopBenchmark extends AbstractPerformanceTest {
 
   @Test
   public void run() throws Exception {
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedGetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedGetBenchmark.java
index 9c7709f..9a4e48f 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedGetBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedGetBenchmark.java
@@ -28,14 +28,13 @@ import org.apache.geode.benchmark.LongRange;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.GetTask;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of gets on a partitioned region.
  */
-public class P2pPartitionedGetBenchmark implements PerformanceTest {
+public class P2pPartitionedGetBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
@@ -55,7 +54,7 @@ public class P2pPartitionedGetBenchmark implements PerformanceTest {
     final TestConfig config = P2pBenchmark.createConfig();
     before(config, new CreatePartitionedRegion(), SERVER);
     before(config, new PrePopulateRegion(keyRange, SERVER), SERVER);
-    workload(config, new GetTask(keyRange), SERVER);
+    workload(config, new GetTask(keyRange, isValidationEnabled()), SERVER);
     return config;
 
   }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBenchmark.java
index 4ae1b3c..92ac8fc 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBenchmark.java
@@ -27,14 +27,13 @@ import org.apache.geode.benchmark.LongRange;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
 import org.apache.geode.benchmark.tasks.PutTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a partitioned region.
  */
-public class P2pPartitionedPutBenchmark implements PerformanceTest {
+public class P2pPartitionedPutBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1_000_000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBytesBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBytesBenchmark.java
index 2e4af47..44a377f 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBytesBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutBytesBenchmark.java
@@ -27,14 +27,13 @@ import org.apache.geode.benchmark.LongRange;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionBytes;
 import org.apache.geode.benchmark.tasks.PutBytesTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a partitioned region.
  */
-public class P2pPartitionedPutBytesBenchmark implements PerformanceTest {
+public class P2pPartitionedPutBytesBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutLongBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutLongBenchmark.java
index 961b604..0b37803 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutLongBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/P2pPartitionedPutLongBenchmark.java
@@ -27,14 +27,13 @@ import org.apache.geode.benchmark.LongRange;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionLong;
 import org.apache.geode.benchmark.tasks.PutLongTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a partitioned region.
  */
-public class P2pPartitionedPutLongBenchmark implements PerformanceTest {
+public class P2pPartitionedPutLongBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmark.java
index 381d4d6..ac62892 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmark.java
@@ -33,7 +33,7 @@ public class PartitionedFunctionExecutionBenchmark extends AbstractPartitionedFu
   @Override
   public TestConfig configure() {
     TestConfig config = super.configure();
-    workload(config, new ExecuteFunction(), CLIENT);
+    workload(config, new ExecuteFunction(isValidationEnabled()), CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmark.java
index 9de3051..c0a8aeb 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmark.java
@@ -36,7 +36,8 @@ public class PartitionedFunctionExecutionWithArgumentsBenchmark
   public TestConfig configure() {
     TestConfig config = super.configure();
     config.threads(Runtime.getRuntime().availableProcessors() * 4);
-    workload(config, new ExecuteParameterizedFunction(getKeyRange()), CLIENT);
+    workload(config, new ExecuteParameterizedFunction(getKeyRange(), isValidationEnabled()),
+        CLIENT);
     return config;
 
   }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmark.java
index 3a3d735..2dfad68 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmark.java
@@ -35,7 +35,7 @@ public class PartitionedFunctionExecutionWithFiltersBenchmark
   public TestConfig configure() {
     TestConfig config = super.configure();
     config.threads(Runtime.getRuntime().availableProcessors() * 8);
-    workload(config, new ExecuteFilteredFunction(getKeyRange()), CLIENT);
+    workload(config, new ExecuteFilteredFunction(getKeyRange(), isValidationEnabled()), CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java
index d2a6790..1c93707 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java
@@ -30,14 +30,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.GetTask;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of gets on a partitioned region.
  */
-public class PartitionedGetBenchmark implements PerformanceTest {
+public class PartitionedGetBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
@@ -58,7 +57,7 @@ public class PartitionedGetBenchmark implements PerformanceTest {
     before(config, new CreatePartitionedRegion(), SERVER);
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new PrePopulateRegion(keyRange), CLIENT);
-    workload(config, new GetTask(keyRange), CLIENT);
+    workload(config, new GetTask(keyRange, isValidationEnabled()), CLIENT);
     return config;
 
   }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmark.java
index 3b770c5..e359bb1 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmark.java
@@ -30,14 +30,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.GetTask;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionLong;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of gets on a partitioned region.
  */
-public class PartitionedGetLongBenchmark implements PerformanceTest {
+public class PartitionedGetLongBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
@@ -58,7 +57,7 @@ public class PartitionedGetLongBenchmark implements PerformanceTest {
     before(config, new CreatePartitionedRegion(), SERVER);
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new PrePopulateRegionLong(keyRange), CLIENT);
-    workload(config, new GetTask(keyRange), CLIENT);
+    workload(config, new GetTask(keyRange, isValidationEnabled()), CLIENT);
     return config;
 
   }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetStringBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetStringBenchmark.java
index 78ecb88..71fd491 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetStringBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetStringBenchmark.java
@@ -31,14 +31,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.GetStringTask;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionString;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of gets on a partitioned region.
  */
-public class PartitionedGetStringBenchmark implements PerformanceTest {
+public class PartitionedGetStringBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmark.java
index bc81006..040de68 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmark.java
@@ -27,11 +27,10 @@ import org.apache.geode.benchmark.tasks.CreateIndexOnID;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.OQLQuery;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
-public class PartitionedIndexedQueryBenchmark implements PerformanceTest {
+public class PartitionedIndexedQueryBenchmark extends AbstractPerformanceTest {
   private LongRange keyRange = new LongRange(0, 500000);
   private long queryRange = 100;
 
@@ -58,7 +57,7 @@ public class PartitionedIndexedQueryBenchmark implements PerformanceTest {
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new CreateIndexOnID(), SERVER);
     before(config, new PrePopulateRegion(keyRange), CLIENT);
-    workload(config, new OQLQuery(keyRange, queryRange), CLIENT);
+    workload(config, new OQLQuery(keyRange, queryRange, isValidationEnabled()), CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmark.java
index 80ff61c..8be31f6 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmark.java
@@ -26,11 +26,10 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.OQLQuery;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
-public class PartitionedNonIndexedQueryBenchmark implements PerformanceTest {
+public class PartitionedNonIndexedQueryBenchmark extends AbstractPerformanceTest {
   private LongRange keyRange = new LongRange(0, 500000);
   private long queryRange = 100;
 
@@ -56,7 +55,7 @@ public class PartitionedNonIndexedQueryBenchmark implements PerformanceTest {
     before(config, new CreatePartitionedRegion(), SERVER);
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new PrePopulateRegion(keyRange), CLIENT);
-    workload(config, new OQLQuery(keyRange, queryRange), CLIENT);
+    workload(config, new OQLQuery(keyRange, queryRange, isValidationEnabled()), CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmark.java
index f7f13f6..3b74757 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
 import org.apache.geode.benchmark.tasks.PutAllTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of putAlls on a partitioned region.
  */
-public class PartitionedPutAllBenchmark implements PerformanceTest {
+public class PartitionedPutAllBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmark.java
index a1ad5e2..8fe9b00 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionLong;
 import org.apache.geode.benchmark.tasks.PutAllTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of putAlls on a partitioned region.
  */
-public class PartitionedPutAllLongBenchmark implements PerformanceTest {
+public class PartitionedPutAllLongBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java
index 8a61a79..e2723fb 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
 import org.apache.geode.benchmark.tasks.PutTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a partitioned region.
  */
-public class PartitionedPutBenchmark implements PerformanceTest {
+public class PartitionedPutBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1_000_000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBytesBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBytesBenchmark.java
index 2a70824..23ced06 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBytesBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBytesBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionBytes;
 import org.apache.geode.benchmark.tasks.PutBytesTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a partitioned region.
  */
-public class PartitionedPutBytesBenchmark implements PerformanceTest {
+public class PartitionedPutBytesBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmark.java
index 5b5307f..907f50b 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionLong;
 import org.apache.geode.benchmark.tasks.PutLongTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a partitioned region.
  */
-public class PartitionedPutLongBenchmark implements PerformanceTest {
+public class PartitionedPutLongBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutStringBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutStringBenchmark.java
index f30c9ec..b8ebf25 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutStringBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutStringBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreatePartitionedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionString;
 import org.apache.geode.benchmark.tasks.PutStringTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a partitioned region.
  */
-public class PartitionedPutStringBenchmark implements PerformanceTest {
+public class PartitionedPutStringBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1_000_000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmark.java
index 0b4e3c1..acf9212 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmark.java
@@ -33,7 +33,7 @@ public class ReplicatedFunctionExecutionBenchmark extends AbstractReplicatedFunc
   @Override
   public TestConfig configure() {
     TestConfig config = super.configure();
-    workload(config, new ExecuteFunction(), CLIENT);
+    workload(config, new ExecuteFunction(isValidationEnabled()), CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmark.java
index 595e955..1ded5a6 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmark.java
@@ -35,7 +35,8 @@ public class ReplicatedFunctionExecutionWithArgumentsBenchmark
   public TestConfig configure() {
     TestConfig config = super.configure();
     config.threads(Runtime.getRuntime().availableProcessors() * 16);
-    workload(config, new ExecuteParameterizedFunction(getKeyRange()), CLIENT);
+    workload(config, new ExecuteParameterizedFunction(getKeyRange(), isValidationEnabled()),
+        CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmark.java
index 728fbab..39c4dc1 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmark.java
@@ -35,7 +35,7 @@ public class ReplicatedFunctionExecutionWithFiltersBenchmark
   public TestConfig configure() {
     TestConfig config = super.configure();
     config.threads(Runtime.getRuntime().availableProcessors() * 10);
-    workload(config, new ExecuteFilteredFunction(getKeyRange()), CLIENT);
+    workload(config, new ExecuteFilteredFunction(getKeyRange(), isValidationEnabled()), CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java
index ac4e9a3..87e2da7 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java
@@ -30,14 +30,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.GetTask;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of gets on a replicated region.
  */
-public class ReplicatedGetBenchmark implements PerformanceTest {
+public class ReplicatedGetBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
@@ -58,7 +57,7 @@ public class ReplicatedGetBenchmark implements PerformanceTest {
     before(config, new CreateReplicatedRegion(), SERVER);
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new PrePopulateRegion(keyRange), CLIENT);
-    workload(config, new GetTask(keyRange), CLIENT);
+    workload(config, new GetTask(keyRange, isValidationEnabled()), CLIENT);
     return config;
 
   }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmark.java
index c3215b9..8330c2c 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmark.java
@@ -30,14 +30,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.GetTask;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionLong;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of gets on a replicated region.
  */
-public class ReplicatedGetLongBenchmark implements PerformanceTest {
+public class ReplicatedGetLongBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
@@ -58,7 +57,7 @@ public class ReplicatedGetLongBenchmark implements PerformanceTest {
     before(config, new CreateReplicatedRegion(), SERVER);
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new PrePopulateRegionLong(keyRange), CLIENT);
-    workload(config, new GetTask(keyRange), CLIENT);
+    workload(config, new GetTask(keyRange, isValidationEnabled()), CLIENT);
     return config;
 
   }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmark.java
index 258400e..04ef8f6 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmark.java
@@ -27,11 +27,10 @@ import org.apache.geode.benchmark.tasks.CreateIndexOnID;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.OQLQuery;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
-public class ReplicatedIndexedQueryBenchmark implements PerformanceTest {
+public class ReplicatedIndexedQueryBenchmark extends AbstractPerformanceTest {
   private LongRange keyRange = new LongRange(0, 500000);
   private long queryRange = 100;
 
@@ -58,7 +57,7 @@ public class ReplicatedIndexedQueryBenchmark implements PerformanceTest {
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new CreateIndexOnID(), SERVER);
     before(config, new PrePopulateRegion(keyRange), CLIENT);
-    workload(config, new OQLQuery(keyRange, queryRange), CLIENT);
+    workload(config, new OQLQuery(keyRange, queryRange, isValidationEnabled()), CLIENT);
     return config;
   }
 }
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmark.java
index 0858a9c..0c4d6b6 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmark.java
@@ -26,11 +26,10 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.OQLQuery;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
-public class ReplicatedNonIndexedQueryBenchmark implements PerformanceTest {
+public class ReplicatedNonIndexedQueryBenchmark extends AbstractPerformanceTest {
   private LongRange keyRange = new LongRange(0, 500000);
   private long queryRange = 100;
 
@@ -56,7 +55,7 @@ public class ReplicatedNonIndexedQueryBenchmark implements PerformanceTest {
     before(config, new CreateReplicatedRegion(), SERVER);
     before(config, new CreateClientProxyRegion(), CLIENT);
     before(config, new PrePopulateRegion(keyRange), CLIENT);
-    workload(config, new OQLQuery(keyRange, queryRange), CLIENT);
+    workload(config, new OQLQuery(keyRange, queryRange, isValidationEnabled()), CLIENT);
     return config;
   }
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllBenchmark.java
index 72e7d1a..c5ace06 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
 import org.apache.geode.benchmark.tasks.PutAllTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of putAlls on a replicated region.
  */
-public class ReplicatedPutAllBenchmark implements PerformanceTest {
+public class ReplicatedPutAllBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllLongBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllLongBenchmark.java
index 1c7607b..3d45dac 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllLongBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutAllLongBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionLong;
 import org.apache.geode.benchmark.tasks.PutAllTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of putAlls on a replicated region.
  */
-public class ReplicatedPutAllLongBenchmark implements PerformanceTest {
+public class ReplicatedPutAllLongBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java
index 4339ca8..fd3c3f5 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegion;
 import org.apache.geode.benchmark.tasks.PutTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a replicated region.
  */
-public class ReplicatedPutBenchmark implements PerformanceTest {
+public class ReplicatedPutBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmark.java
index 9b4d0f7..bc8c8e1 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmark.java
@@ -29,14 +29,13 @@ import org.apache.geode.benchmark.tasks.CreateClientProxyRegion;
 import org.apache.geode.benchmark.tasks.CreateReplicatedRegion;
 import org.apache.geode.benchmark.tasks.PrePopulateRegionLong;
 import org.apache.geode.benchmark.tasks.PutTask;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 import org.apache.geode.perftest.TestRunners;
 
 /**
  * Benchmark of puts on a replicated region.
  */
-public class ReplicatedPutLongBenchmark implements PerformanceTest {
+public class ReplicatedPutLongBenchmark extends AbstractPerformanceTest {
 
   private LongRange keyRange = new LongRange(0, 1000000);
 
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisBenchmark.java
index 04d1d3c..d9775b6 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisBenchmark.java
@@ -29,14 +29,14 @@ import org.apache.geode.benchmark.tasks.redis.LettuceClientManager;
 import org.apache.geode.benchmark.tasks.redis.RedisClientManager;
 import org.apache.geode.benchmark.tasks.redis.StartRedisClient;
 import org.apache.geode.benchmark.tasks.redis.StopRedisClient;
+import org.apache.geode.benchmark.tests.AbstractPerformanceTest;
 import org.apache.geode.benchmark.tests.GeodeBenchmark;
 import org.apache.geode.benchmark.topology.redis.GedisTopology;
 import org.apache.geode.benchmark.topology.redis.ManualRedisTopology;
 import org.apache.geode.benchmark.topology.redis.RedisTopology;
-import org.apache.geode.perftest.PerformanceTest;
 import org.apache.geode.perftest.TestConfig;
 
-public class RedisBenchmark implements PerformanceTest {
+public class RedisBenchmark extends AbstractPerformanceTest {
 
   public static final String WITH_REDIS_CLIENT_PROPERTY = "benchmark.withRedisClient";
   public static final String WITH_REDIS_CLUSTER_PROPERTY = "benchmark.withRedisCluster";
diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisPutBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisPutBenchmark.java
index 1703757..4c39a3d 100644
--- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisPutBenchmark.java
+++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/redis/RedisPutBenchmark.java
@@ -20,7 +20,6 @@ package org.apache.geode.benchmark.tests.redis;
 
 import static org.apache.geode.benchmark.Config.before;
 import static org.apache.geode.benchmark.Config.workload;
-import static org.apache.geode.benchmark.tests.GeodeBenchmark.isValidationEnabled;
 import static org.apache.geode.benchmark.topology.Roles.CLIENT;
 
 import org.junit.jupiter.api.Test;
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmarkTest.java
index 6b4d1df..eb6437f 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionBenchmarkTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.benchmark.tests;
 
 import java.io.File;
 
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.geode.benchmark.LongRange;
@@ -26,9 +27,11 @@ public class PartitionedFunctionExecutionBenchmarkTest {
   @TempDir
   File folder;
 
+  @Test
   public void benchmarkRunsSuccessfully() throws Exception {
     PartitionedFunctionExecutionBenchmark test = new PartitionedFunctionExecutionBenchmark();
     test.setKeyRange(new LongRange(0, 100));
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmarkTest.java
index c061986..26b06e9 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithArgumentsBenchmarkTest.java
@@ -32,6 +32,7 @@ public class PartitionedFunctionExecutionWithArgumentsBenchmarkTest {
     PartitionedFunctionExecutionWithArgumentsBenchmark test =
         new PartitionedFunctionExecutionWithArgumentsBenchmark();
     test.setKeyRange(new LongRange(0, 100));
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmarkTest.java
index fbfc898..10d67b5 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedFunctionExecutionWithFiltersBenchmarkTest.java
@@ -32,7 +32,7 @@ public class PartitionedFunctionExecutionWithFiltersBenchmarkTest {
     PartitionedFunctionExecutionWithFiltersBenchmark test =
         new PartitionedFunctionExecutionWithFiltersBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java
index 268feee..ba3f59d 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java
@@ -32,7 +32,7 @@ public class PartitionedGetBenchmarkTest {
       throws Exception {
     PartitionedGetBenchmark test = new PartitionedGetBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmarkTest.java
index 6430225..a4c799c 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetLongBenchmarkTest.java
@@ -32,7 +32,7 @@ public class PartitionedGetLongBenchmarkTest {
       throws Exception {
     PartitionedGetLongBenchmark test = new PartitionedGetLongBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmarkTest.java
index 972eaf8..1633db8 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedIndexedQueryBenchmarkTest.java
@@ -31,6 +31,7 @@ public class PartitionedIndexedQueryBenchmarkTest {
     PartitionedIndexedQueryBenchmark test = new PartitionedIndexedQueryBenchmark();
     test.setKeyRange(new LongRange(0, 100));
     test.setQueryRange(10);
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmarkTest.java
index b9e6de7..9322817 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedNonIndexedQueryBenchmarkTest.java
@@ -31,6 +31,7 @@ public class PartitionedNonIndexedQueryBenchmarkTest {
     PartitionedNonIndexedQueryBenchmark test = new PartitionedNonIndexedQueryBenchmark();
     test.setKeyRange(new LongRange(0, 100));
     test.setQueryRange(10);
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmarkTest.java
index 15b5056..bbb6c21 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllBenchmarkTest.java
@@ -35,7 +35,7 @@ public class PartitionedPutAllBenchmarkTest {
       throws Exception {
     PartitionedPutAllBenchmark test = new PartitionedPutAllBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmarkTest.java
index 5f22743..64ca18b 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutAllLongBenchmarkTest.java
@@ -35,7 +35,7 @@ public class PartitionedPutAllLongBenchmarkTest {
       throws Exception {
     PartitionedPutAllLongBenchmark test = new PartitionedPutAllLongBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java
index 13bf6f8..007aec2 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java
@@ -35,7 +35,7 @@ public class PartitionedPutBenchmarkTest {
       throws Exception {
     PartitionedPutBenchmark test = new PartitionedPutBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmarkTest.java
index 21454c8..0d03b60 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutLongBenchmarkTest.java
@@ -35,7 +35,7 @@ public class PartitionedPutLongBenchmarkTest {
       throws Exception {
     PartitionedPutLongBenchmark test = new PartitionedPutLongBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmarkTest.java
index c7c086d..86dfc44 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionBenchmarkTest.java
@@ -31,6 +31,7 @@ public class ReplicatedFunctionExecutionBenchmarkTest {
   void benchmarkRunsSuccessfully() throws Exception {
     ReplicatedFunctionExecutionBenchmark test = new ReplicatedFunctionExecutionBenchmark();
     test.setKeyRange(new LongRange(0, 100));
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmarkTest.java
index ef91202..648e01c 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithArgumentsBenchmarkTest.java
@@ -31,6 +31,7 @@ public class ReplicatedFunctionExecutionWithArgumentsBenchmarkTest {
     ReplicatedFunctionExecutionWithArgumentsBenchmark test =
         new ReplicatedFunctionExecutionWithArgumentsBenchmark();
     test.setKeyRange(new LongRange(0, 100));
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmarkTest.java
index 0f9d3c0..d3b757e 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedFunctionExecutionWithFiltersBenchmarkTest.java
@@ -31,6 +31,7 @@ public class ReplicatedFunctionExecutionWithFiltersBenchmarkTest {
     ReplicatedFunctionExecutionWithFiltersBenchmark test =
         new ReplicatedFunctionExecutionWithFiltersBenchmark();
     test.setKeyRange(new LongRange(0, 100));
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java
index 8044204..7afff8a 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java
@@ -32,7 +32,7 @@ public class ReplicatedGetBenchmarkTest {
       throws Exception {
     ReplicatedGetBenchmark test = new ReplicatedGetBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmarkTest.java
index 423b4a8..5dcc6a3 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetLongBenchmarkTest.java
@@ -32,7 +32,7 @@ public class ReplicatedGetLongBenchmarkTest {
       throws Exception {
     ReplicatedGetLongBenchmark test = new ReplicatedGetLongBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmarkTest.java
index 869b6bb..0a36ee9 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedIndexedQueryBenchmarkTest.java
@@ -32,6 +32,7 @@ public class ReplicatedIndexedQueryBenchmarkTest {
     ReplicatedIndexedQueryBenchmark test = new ReplicatedIndexedQueryBenchmark();
     test.setKeyRange(new LongRange(0, 100));
     test.setQueryRange(10);
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmarkTest.java
index c6d2c09..90436f0 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedNonIndexedQueryBenchmarkTest.java
@@ -32,6 +32,7 @@ public class ReplicatedNonIndexedQueryBenchmarkTest {
     ReplicatedNonIndexedQueryBenchmark test = new ReplicatedNonIndexedQueryBenchmark();
     test.setKeyRange(new LongRange(0, 100));
     test.setQueryRange(10);
+    test.setValidationEnabled(true);
     TestRunners.minimalRunner(folder).runTest(test);
   }
 
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java
index 157c48c..d99d3b4 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java
@@ -35,7 +35,7 @@ public class ReplicatedPutBenchmarkTest {
       throws Exception {
     ReplicatedPutBenchmark test = new ReplicatedPutBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmarkTest.java
index 8c1be3f..e78c653 100644
--- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmarkTest.java
+++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutLongBenchmarkTest.java
@@ -35,7 +35,7 @@ public class ReplicatedPutLongBenchmarkTest {
       throws Exception {
     ReplicatedPutLongBenchmark test = new ReplicatedPutLongBenchmark();
     test.setKeyRange(new LongRange(0, 100));
-    TestRunners.minimalRunner(folder)
-        .runTest(test);
+    test.setValidationEnabled(true);
+    TestRunners.minimalRunner(folder).runTest(test);
   }
 }
diff --git a/harness/src/main/java/org/apache/geode/perftest/PerformanceTest.java b/harness/src/main/java/org/apache/geode/perftest/PerformanceTest.java
index 4a97ca5..ab8ac60 100644
--- a/harness/src/main/java/org/apache/geode/perftest/PerformanceTest.java
+++ b/harness/src/main/java/org/apache/geode/perftest/PerformanceTest.java
@@ -49,4 +49,5 @@ public interface PerformanceTest extends Serializable {
    */
   TestConfig configure();
 
+
 }
diff --git a/harness/src/main/java/org/apache/geode/perftest/TestRunners.java b/harness/src/main/java/org/apache/geode/perftest/TestRunners.java
index 27fddb3..5a71a0f 100644
--- a/harness/src/main/java/org/apache/geode/perftest/TestRunners.java
+++ b/harness/src/main/java/org/apache/geode/perftest/TestRunners.java
@@ -42,32 +42,8 @@ public class TestRunners {
   public static final String OUTPUT_DIR = "benchmark.OUTPUT_DIR";
 
   public static final String[] JVM_ARGS_SMALL_SIZE = new String[] {
-      "-XX:CMSInitiatingOccupancyFraction=60",
-      "-XX:+PrintGCDetails",
-      "-XX:+PrintGCTimeStamps",
-      "-XX:+PrintGCDateStamps",
-      "-XX:+PrintGCApplicationStoppedTime",
-      "-XX:+PrintGCApplicationConcurrentTime",
-      "-XX:+UseGCLogFileRotation",
-      "-XX:NumberOfGCLogFiles=20",
-      "-XX:GCLogFileSize=1M",
-      "-XX:+UnlockDiagnosticVMOptions",
-      "-XX:ParGCCardsPerStrideChunk=32768",
-      "-XX:+UseNUMA",
-      "-XX:+UseConcMarkSweepGC",
-      "-XX:+UseCMSInitiatingOccupancyOnly",
-      "-XX:+CMSClassUnloadingEnabled",
-      "-XX:+DisableExplicitGC",
-      "-XX:+ScavengeBeforeFullGC",
-      "-XX:+CMSScavengeBeforeRemark",
-      "-server",
-      "-Djava.awt.headless=true",
-      "-Dsun.rmi.dgc.server.gcInterval=9223372036854775806",
-      "-Dgemfire.OSProcess.ENABLE_OUTPUT_REDIRECTION=true",
-      "-Dgemfire.launcher.registerSignalHandlers=true",
       "-Xmx4g",
       "-Xms4g"
-
   };
 
   public static TestRunner defaultRunner(String username, File outputDir, String... hosts) {