From 6b7d73a49695c0ceb78bc7a003ace606a806c13a Mon Sep 17 00:00:00 2001 From: Noam Hasson Date: Thu, 17 Aug 2017 11:53:45 +0300 Subject: [PATCH] Add support for skip read validation flag for cassandra-stress patch by Noam Hasson; reviewed by jasobrown for CASSANDRA-13772 --- .../stress/operations/predefined/CqlOperation.java | 11 +++++++---- .../cassandra/stress/settings/SettingsErrors.java | 6 ++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tools/stress/src/org/apache/cassandra/stress/operations/predefined/CqlOperation.java b/tools/stress/src/org/apache/cassandra/stress/operations/predefined/CqlOperation.java index 647ba87e59..807bb4988d 100644 --- a/tools/stress/src/org/apache/cassandra/stress/operations/predefined/CqlOperation.java +++ b/tools/stress/src/org/apache/cassandra/stress/operations/predefined/CqlOperation.java @@ -196,11 +196,14 @@ public abstract class CqlOperation extends PredefinedOperation public boolean validate(ByteBuffer[][] result) { - if (result.length != expect.size()) - return false; - for (int i = 0 ; i < result.length ; i++) - if (expect.get(i) != null && !expect.get(i).equals(Arrays.asList(result[i]))) + if (!settings.errors.skipReadValidation) + { + if (result.length != expect.size()) return false; + for (int i = 0; i < result.length; i++) + if (expect.get(i) != null && !expect.get(i).equals(Arrays.asList(result[i]))) + return false; + } return true; } } diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsErrors.java b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsErrors.java index aae4dd9010..41a3dbdb26 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsErrors.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsErrors.java @@ -33,11 +33,13 @@ public class SettingsErrors implements Serializable public final boolean ignore; public final int tries; + public final boolean skipReadValidation; public SettingsErrors(Options options) { ignore = options.ignore.setByUser(); this.tries = Math.max(1, Integer.parseInt(options.retries.value()) + 1); + skipReadValidation = options.skipReadValidation.setByUser(); } // Option Declarations @@ -46,11 +48,11 @@ public class SettingsErrors implements Serializable { final OptionSimple retries = new OptionSimple("retries=", "[0-9]+", "9", "Number of tries to perform for each operation before failing", false); final OptionSimple ignore = new OptionSimple("ignore", "", null, "Do not fail on errors", false); - + final OptionSimple skipReadValidation = new OptionSimple("skip-read-validation", "", null, "Skip read validation and message output", false); @Override public List options() { - return Arrays.asList(retries, ignore); + return Arrays.asList(retries, ignore, skipReadValidation); } }