cassandra-harry.git
11 days agoFix conf/external.yaml to have run_time in the right place trunk
Israel Fruchter [Thu, 13 Jan 2022 12:04:29 +0000 (14:04 +0200)] 
Fix conf/external.yaml to have run_time in the right place

11 days agodisable harry-integration local (in-jvm) module for standalone mode
Amos Kong [Tue, 19 Jan 2021 13:55:37 +0000 (21:55 +0800)] 
disable harry-integration local (in-jvm) module for standalone mode

In case we don't need the docker integration of `harry-integration`
and we are using an external running cassandra

Signed-off-by: Amos Kong <amos@scylladb.com>
11 days agofix(scripts/cassandra-harry): Fixing bash if condition
Efraimov Oren [Wed, 19 Jan 2022 14:31:04 +0000 (16:31 +0200)] 
fix(scripts/cassandra-harry): Fixing bash if condition

Some IFs were contained incorrect conditions because of test leftover.

11 days agofix(scripts/cassandra-harry): Fixing bash if condition
Efraimov Oren [Thu, 13 Jan 2022 16:21:22 +0000 (18:21 +0200)] 
fix(scripts/cassandra-harry): Fixing bash if condition

The correct way to check if variable is set is:
```bash
if [ -z ${var+x} ]; then
   echo "var is unset"
else
   echo "var is set to '$var'"
fi
```

For more information please check the following link:
https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash

3 months ago[maven-release-plugin] prepare for next development iteration release
Alex Petrov [Mon, 7 Feb 2022 14:40:24 +0000 (15:40 +0100)] 
[maven-release-plugin] prepare for next development iteration

3 months ago[maven-release-plugin] prepare release 0.0.1 0.0.1
Alex Petrov [Mon, 7 Feb 2022 14:40:17 +0000 (15:40 +0100)] 
[maven-release-plugin] prepare release 0.0.1

3 months agoPrepare for release.
Alex Petrov [Mon, 7 Feb 2022 13:05:22 +0000 (14:05 +0100)] 
Prepare for release.

4 months agoFeatures:
Alex Petrov [Thu, 25 Nov 2021 07:45:00 +0000 (08:45 +0100)] 
Features:
  * Implement lookbehind via tracker callbacks
  * Improve DSL
  * Rename maxLts to peek
  * Split lts visitors from visitors
  * Allow create table if not exists
  * Allow sampler to be triggered at every LTS
  * Allow local state validator to always run
  * Add Staged Runner
  * Add wait for token ranges
  * Make keyspace DDL configurable
  * Rename PartitionVisitor to Visitor

Bugfixes:
  * Fix for queue draining
  * Fix distribution of the single-op values
  * Fix bug in schema helper: static columns are listed as duplicates

Patch by Alex Petrov for CASSANDRA-16262

Co-authored-by: Caleb Rackliffe <calebrackliffe@gmail.com>
5 months agoscript: add options to cassandra-harry script
Amos Kong [Tue, 1 Jun 2021 13:50:48 +0000 (21:50 +0800)] 
script: add options to cassandra-harry script

This patch added options to wrap script, it supported to assign test
duraton from cmdline.

Signed-off-by: Amos Kong <amos@scylladb.com>
5 months agoscripts: add scripts/cassandra-harry
Amos Kong [Tue, 19 Jan 2021 14:24:20 +0000 (22:24 +0800)] 
scripts: add scripts/cassandra-harry

We want to use cassandra-harry in automation test, and it's not
convenient to set eveything in yaml config.

This patch added a script to accept the cmdline options and editing the
yaml config.

Signed-off-by: Amos Kong <amos@scylladb.com>
5 months agoMakefile: support to build without creating docker image
Amos Kong [Tue, 19 Jan 2021 14:03:46 +0000 (22:03 +0800)] 
Makefile: support to build without creating docker image

When external cluster is used, docker isn't needed.

Signed-off-by: Amos Kong <amos@scylladb.com>
7 months agoAdd history builder and an ability to write unit-tests with Harry
Alex Petrov [Mon, 27 Sep 2021 10:56:33 +0000 (12:56 +0200)] 
Add history builder and an ability to write unit-tests with Harry

Implement a full repair test

7 months agoMove classes to appropriate packages
Alex Petrov [Thu, 15 Jul 2021 06:29:57 +0000 (08:29 +0200)] 
Move classes to appropriate packages

7 months agoAdjust config files
Alex Petrov [Tue, 13 Jul 2021 08:41:18 +0000 (10:41 +0200)] 
Adjust config files

7 months agoIntegration improvements
Alex Petrov [Mon, 12 Jul 2021 15:54:42 +0000 (17:54 +0200)] 
Integration improvements

7 months agoCore improvements
Alex Petrov [Mon, 12 Jul 2021 15:04:37 +0000 (17:04 +0200)] 
Core improvements

    Major features:
      * Implement updates
      * Make sure we can advance RNGs from zero as well
      * Fix a problem with predictable descriptor
    Bugfixes:
      * Fix column mask inconsistencies
      * Fix a problem with partition key liveness info
    Quality of life improvements:
      * Get rid of driver dependency for query generation
      * Get rid of guava dependency
      * Add reusable config files
      * Switch from streams to iterables
    General improvements:
      * Make unset and nil descriptors more distinct and harder to generate particularly for the smaller descriptors
      * Fixed schema configurator to allow empty column sets
      * Move workloads to a common dir
      * Fixed schema configurator to output correct json
      * No-op checker to execute with Quorum, not ALL
      * Make tag for build unique

Patch by Alex Petrov for CASSANDRA-16262

8 months agoFix MetricReporter serialization; Update example yaml configs for required props.
Gianluca Righetto [Wed, 25 Aug 2021 12:04:03 +0000 (09:04 -0300)] 
Fix MetricReporter serialization; Update example yaml configs for required props.

10 months agoImprovements:
Alex Petrov [Thu, 22 Apr 2021 10:09:28 +0000 (12:09 +0200)] 
Improvements:
 * Timestamp tie resolution
 * Test validating behavior during upgrades (mixed version clusters)
 * Improve recent partition validator
 * Add number of queries per partition
 * Make it easier run jobs from a local machine
 * Make string postfixes more random by avoiding reusing nibbles
 * Improve weight distributions
 * Allow clustering keys with less entropy than 8 bytes
Notable bugfixes:
 * Fix a problem with generation of non-eq bounds following reverse columns
 * Fix a problem with empty static clusterings for single-column tables
New features:
 * Add a trivial shrinker
 * Add a parallel recent partition validator
 * Add sampler
 * Quiescent Checker: Implement Statics
 * Add mixed-mode in-jvm SUT
 * Add validation log

Numerous quality-of-life, debugging improvements, bugfixes, and cosmetic changes Several useful example config files. Exhaustive checker was removed in favour of quickly extending functionality.

Patch by Alex Petrov for CASSANDRA-16262.

10 months agoNumerious minor improvements while preparing for fuzz-testing 4.0 in earnest:
Alex Petrov [Wed, 24 Mar 2021 15:11:57 +0000 (16:11 +0100)] 
Numerious minor improvements while preparing for fuzz-testing 4.0 in earnest:

  * Refactor Run to make it an entrypoint
  * Separate Partition visitors from Row visitors
  * Make it possible to effortlessly check local states
  * Introduce CLs
  * More clear distinction between the components allowing to implement visitors (such as repairing validator)
  * Implement fault injecting partition visitor
  * Extract DataTracker
  * Minor bug fixes

Patch by Alex Petrov for CASSANDRA-16262.

15 months agoRemoved dangling reference to the harry-runner module.
Gianluca Righetto [Sat, 9 Jan 2021 07:43:43 +0000 (04:43 -0300)] 
Removed dangling reference to the harry-runner module.

15 months agoRemoved dangling reference to the harry-runner module.
Gianluca Righetto [Sat, 9 Jan 2021 07:41:42 +0000 (04:41 -0300)] 
Removed dangling reference to the harry-runner module.

17 months agoRemoved references to harry-runner from Dockerfile.
Gianluca Righetto [Thu, 10 Dec 2020 00:41:26 +0000 (21:41 -0300)] 
Removed references to harry-runner from Dockerfile.

17 months agoAdded license header to new files.
Gianluca Righetto [Wed, 9 Dec 2020 22:19:08 +0000 (19:19 -0300)] 
Added license header to new files.

17 months agoMoved HarryRunner interface to harry-core and removed the harry-runner module.
Gianluca Righetto [Wed, 9 Dec 2020 22:09:20 +0000 (19:09 -0300)] 
Moved HarryRunner interface to harry-core and removed the harry-runner module.

17 months agoUse `logger.error` instead of `printStackTrace` in HarryRunner.
Gianluca Righetto [Wed, 9 Dec 2020 20:05:35 +0000 (17:05 -0300)] 
Use `logger.error` instead of `printStackTrace` in HarryRunner.

17 months agoFixed Java var names to match YAML props.
Gianluca Righetto [Wed, 9 Dec 2020 18:42:38 +0000 (15:42 -0300)] 
Fixed Java var names to match YAML props.

17 months agoFixed broken & missing props in example YAML; Added new example config for external...
Gianluca Righetto [Tue, 8 Dec 2020 20:05:31 +0000 (17:05 -0300)] 
Fixed broken & missing props in example YAML; Added new example config for external cluster; Added run scripts to help with getting started; Fixed object mapping for `ApproximateMonotonicClockConfiguration`; Removed hardcoded configuration for in-JVM execution;

17 months agoTweaked Dockerfile and run.sh to use the new HarryRunnerJvm class.
Gianluca Righetto [Tue, 8 Dec 2020 13:07:09 +0000 (10:07 -0300)] 
Tweaked Dockerfile and run.sh to use the new HarryRunnerJvm class.

17 months agoTemporarily disabled `ExhaustiveCheckerIntegrationTest#testDetectsOverwrittenRow`.
Gianluca Righetto [Mon, 7 Dec 2020 22:08:51 +0000 (19:08 -0300)] 
Temporarily disabled `ExhaustiveCheckerIntegrationTest#testDetectsOverwrittenRow`.

17 months agoAllow for YAML-based configuration for execution against an external cluster; Build...
Gianluca Righetto [Mon, 7 Dec 2020 16:14:40 +0000 (13:14 -0300)] 
Allow for YAML-based configuration for execution against an external cluster; Build an uber jar for harry-integration-external.

17 months agoRemoved harry-core dependency on the in in-jvm dtest libs (cassandra-dtest-shaded...
Gianluca Righetto [Mon, 7 Dec 2020 00:13:05 +0000 (21:13 -0300)] 
Removed harry-core dependency on the in in-jvm dtest libs (cassandra-dtest-shaded and dtest-api); Moved in-jvm tests to the harry-integration module; Created a new module: harry-integration-external for connections with external clusters.

19 months agoUpdate jackson dependency to 2.11.3 to force yaml to 1.26
Alex Petrov [Fri, 9 Oct 2020 13:01:27 +0000 (15:01 +0200)] 
Update jackson dependency to 2.11.3 to force yaml to 1.26

19 months agoAdd a renamed .asf.yaml back
Alex Petrov [Sat, 10 Oct 2020 07:36:22 +0000 (09:36 +0200)] 
Add a renamed .asf.yaml back

19 months agoRename .asf.yml to .asf.yaml
Alex Petrov [Wed, 23 Sep 2020 07:22:47 +0000 (09:22 +0200)] 
Rename .asf.yml to .asf.yaml

19 months agoUpdate README.md
Scott Hirleman [Mon, 21 Sep 2020 21:22:03 +0000 (14:22 -0700)] 
Update README.md

In What's Missing section:
Removed the repeated bullet of * Partition deletions are not implemented
Removed extra "o" from  * Exhaustive checker should use more precise information from data tracker, not
  just watermarks

19 months agoNinja: Add asf.yml
Alex Petrov [Mon, 21 Sep 2020 13:48:13 +0000 (16:48 +0300)] 
Ninja: Add asf.yml

19 months agoPatch introduces the following changes:
Alex Petrov [Fri, 18 Sep 2020 12:50:40 +0000 (15:50 +0300)] 
Patch introduces the following changes:

1. Add “progressive” generators in tests (i.e., ones that start with simple schemas/data types, such as ones that use longs and progress to more complex ones, such as strings, doubles, and other data types, including reverse ones).
2. Fix support for reverse types in clustering columns
3. Remove adjustEntropyDomain and improve Float and Double data types, making them byte-ordered and switching them to use less entropy (3 bytes for float and 7 bytes for double).

Patch by Alex Petrov, for CASSANDRA-15348

19 months agoAdd license headers and NOTICE according to PMC review/feedback.
Alex Petrov [Tue, 15 Sep 2020 14:23:00 +0000 (16:23 +0200)] 
Add license headers and NOTICE according to PMC review/feedback.

19 months agoReadme improvements
Alex Petrov [Thu, 3 Sep 2020 22:28:43 +0000 (00:28 +0200)] 
Readme improvements

Patch by Alex Petrov; reviewed by Caleb Rackliffe for CASSANDRA-15348

19 months agoHarry: generator library and extensible framework for fuzz testing Apache Cassandra
Alex Petrov [Thu, 3 Sep 2020 18:19:57 +0000 (20:19 +0200)] 
Harry: generator library and extensible framework for fuzz testing Apache Cassandra

Patch by Alex Petrov; reviewed by Aleksey Yeschenko for CASSANDRA-15348

20 months agoInitialize empty repository
Alex Petrov [Thu, 3 Sep 2020 18:19:57 +0000 (20:19 +0200)] 
Initialize empty repository