Merge branch 'cassandra-2.1' into trunk Conflicts: tools/stress/src/org/apache/cassandra/stress/StressAction.java tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommand.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b170b3ca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b170b3ca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b170b3ca Branch: refs/heads/trunk Commit: b170b3caa216f9dd84070bc0edeb1be1a13e7596 Parents: 131097c 77d0c17 Author: Benedict Elliott Smith <bened...@apache.org> Authored: Sun Sep 7 21:32:36 2014 +0700 Committer: Benedict Elliott Smith <bened...@apache.org> Committed: Sun Sep 7 21:32:36 2014 +0700 ---------------------------------------------------------------------- CHANGES.txt | 3 + NEWS.txt | 13 +- debian/changelog | 12 + tools/cqlstress-counter-example.yaml | 20 +- tools/cqlstress-example.yaml | 25 +- tools/cqlstress-insanity-example.yaml | 20 +- .../org/apache/cassandra/stress/Operation.java | 9 +- .../apache/cassandra/stress/StressAction.java | 169 +++------- .../apache/cassandra/stress/StressMetrics.java | 26 +- .../apache/cassandra/stress/StressProfile.java | 75 ++++- .../org/apache/cassandra/stress/StressYaml.java | 12 +- .../stress/generate/DistributionInverted.java | 7 + .../stress/generate/DistributionQuantized.java | 90 +++++ .../cassandra/stress/generate/FasterRandom.java | 116 +++++++ .../cassandra/stress/generate/Partition.java | 327 +++++++++++++++---- .../stress/generate/PartitionGenerator.java | 28 +- .../stress/generate/RatioDistribution.java | 5 + .../apache/cassandra/stress/generate/Seed.java | 67 ++++ .../stress/generate/SeedGenerator.java | 29 -- .../cassandra/stress/generate/SeedManager.java | 249 ++++++++++++++ .../stress/generate/SeedRandomGenerator.java | 54 --- .../stress/generate/SeedSeriesGenerator.java | 42 --- .../stress/generate/values/Booleans.java | 2 +- .../cassandra/stress/generate/values/Bytes.java | 9 +- .../cassandra/stress/generate/values/Dates.java | 3 +- .../stress/generate/values/Doubles.java | 2 +- .../stress/generate/values/Floats.java | 2 +- .../stress/generate/values/Generator.java | 4 +- .../stress/generate/values/HexBytes.java | 2 +- .../stress/generate/values/HexStrings.java | 4 +- .../cassandra/stress/generate/values/Inets.java | 2 +- .../stress/generate/values/Integers.java | 2 +- .../cassandra/stress/generate/values/Lists.java | 2 +- .../cassandra/stress/generate/values/Longs.java | 2 +- .../cassandra/stress/generate/values/Sets.java | 2 +- .../stress/generate/values/Strings.java | 12 +- .../stress/generate/values/TimeUUIDs.java | 2 +- .../cassandra/stress/generate/values/UUIDs.java | 2 +- .../operations/predefined/CqlCounterAdder.java | 5 + .../operations/predefined/CqlInserter.java | 5 + .../predefined/PredefinedOperation.java | 2 +- .../predefined/ThriftCounterAdder.java | 5 + .../operations/predefined/ThriftInserter.java | 5 + .../operations/userdefined/SchemaInsert.java | 80 +++-- .../operations/userdefined/SchemaQuery.java | 87 ++++- .../operations/userdefined/SchemaStatement.java | 53 +-- .../cassandra/stress/settings/CliOption.java | 3 +- .../stress/settings/OptionDistribution.java | 72 +++- .../settings/OptionRatioDistribution.java | 40 ++- .../stress/settings/SettingsCommand.java | 14 +- .../settings/SettingsCommandPreDefined.java | 13 +- .../SettingsCommandPreDefinedMixed.java | 10 +- .../stress/settings/SettingsCommandUser.java | 22 +- .../stress/settings/SettingsErrors.java | 92 ++++++ .../stress/settings/SettingsInsert.java | 103 ++++++ .../cassandra/stress/settings/SettingsKey.java | 153 --------- .../stress/settings/SettingsPopulation.java | 176 ++++++++++ .../stress/settings/SettingsSchema.java | 17 +- .../stress/settings/StressSettings.java | 23 +- .../cassandra/stress/util/DynamicList.java | 259 +++++++++++++++ .../org/apache/cassandra/stress/util/Timer.java | 7 +- .../apache/cassandra/stress/util/Timing.java | 13 +- .../cassandra/stress/util/TimingInterval.java | 6 +- 63 files changed, 1981 insertions(+), 736 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/CHANGES.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/NEWS.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/StressAction.java ---------------------------------------------------------------------- diff --cc tools/stress/src/org/apache/cassandra/stress/StressAction.java index d2253f8,e58bfa1..01370d4 --- a/tools/stress/src/org/apache/cassandra/stress/StressAction.java +++ b/tools/stress/src/org/apache/cassandra/stress/StressAction.java @@@ -169,14 -166,13 +168,14 @@@ public class StressAction implements Ru output.println(String.format("Running %s with %d threads %s", operations.desc(), threadCount, - opCount > 0 ? " for " + opCount + " iterations" : "until stderr of mean < " + settings.command.targetUncertainty)); + durationUnits != null ? duration + " " + durationUnits.toString().toLowerCase() + : opCount > 0 ? "for " + opCount + " iteration" + : "until stderr of mean < " + settings.command.targetUncertainty)); - final WorkQueue workQueue; + final WorkManager workManager; if (opCount < 0) - workQueue = new ContinuousWorkQueue(50); + workManager = new ContinuousWorkManager(); else - workQueue = FixedWorkQueue.build(opCount); + workManager = new FixedWorkManager(opCount); RateLimiter rateLimiter = null; // TODO : move this to a new queue wrapper that gates progress based on a poisson (or configurable) distribution http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/StressMetrics.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/StressProfile.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/operations/predefined/CqlCounterAdder.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/operations/predefined/CqlInserter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/operations/predefined/PredefinedOperation.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/operations/predefined/ThriftInserter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/settings/OptionDistribution.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommand.java ---------------------------------------------------------------------- diff --cc tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommand.java index 7715e48,59accb9..72df6de --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommand.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommand.java @@@ -25,8 -25,8 +25,9 @@@ import java.io.Serializable import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; + import org.apache.cassandra.stress.generate.SeedManager; import org.apache.cassandra.stress.operations.OpDistributionFactory; import org.apache.cassandra.thrift.ConsistencyLevel; @@@ -36,10 -36,6 +37,8 @@@ public abstract class SettingsCommand i public final Command type; public final long count; + public final long duration; + public final TimeUnit durationUnits; - public final int tries; - public final boolean ignoreErrors; public final boolean noWarmup; public final ConsistencyLevel consistencyLevel; public final double targetUncertainty; @@@ -57,11 -52,9 +56,9 @@@ ); } - public SettingsCommand(Command type, Options options, Count count, Uncertainty uncertainty) + public SettingsCommand(Command type, Options options, Count count, Duration duration, Uncertainty uncertainty) { this.type = type; - this.tries = Math.max(1, Integer.parseInt(options.retries.value()) + 1); - this.ignoreErrors = options.ignoreErrors.setByUser(); this.consistencyLevel = ConsistencyLevel.valueOf(options.consistencyLevel.value().toUpperCase()); this.noWarmup = options.noWarmup.setByUser(); if (count != null) http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefined.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b170b3ca/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandUser.java ----------------------------------------------------------------------