This is an automated email from the ASF dual-hosted git repository. ifesdjeen pushed a commit to branch CASSANDRA-16262-2 in repository https://gitbox.apache.org/repos/asf/cassandra-harry.git
commit 32a9200e706883e8e248c81f95174fa34226e90c Author: Alex Petrov <[email protected]> AuthorDate: Tue Jul 13 10:41:18 2021 +0200 Adjust config files --- README.md | 3 -- conf/{example.yaml => default.yaml} | 63 ++++++++++++++++++++++++------------- conf/external.yaml | 51 +++++++++++++++++++++--------- docker/Dockerfile.local | 2 +- docker/run.sh | 2 +- pom.xml | 24 ++++++-------- run-jvm.sh | 2 +- 7 files changed, 90 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index ec93b22..841e4ea 100644 --- a/README.md +++ b/README.md @@ -491,10 +491,8 @@ Harry is by no means feature-complete. Main things that are missing are: * Some types (such as collections) are not deflatable * Some types are implemented, but are not hooked up (`blob` and `text`) to DSL/generator - * Partition deletions are not implemented * 2i queries are not implemented * Compact storage is not implemented - * Static columns are not implemented * Fault injection is not implemented * Runner and scheduler are rather rudimentary and require significant rework and proper scheduling * TTL is not supported @@ -508,7 +506,6 @@ Some things, even though are implemented, can be improved or optimized: * Inflated partition state and per-row operation log should be done in a compact off-heap data structure * Exhaustive checker can be significantly optimized - * Harry shouldn't rely on java-driver for query generation * Exhaustive checker should use more precise information from data tracker, not just watermarks * Decision-making about _when_ we visit partitions and/or rows should be improved diff --git a/conf/example.yaml b/conf/default.yaml similarity index 76% rename from conf/example.yaml rename to conf/default.yaml index 3a3c5ab..cdbc34c 100644 --- a/conf/example.yaml +++ b/conf/default.yaml @@ -35,14 +35,6 @@ clock: epoch_length: 1 epoch_time_unit: "SECONDS" -# Runner is a is a component that schedules operations that change the cluster (system under test) -# and model state. -runner: - concurrent: - writer_threads: 2 - round_robin_validator_threads: 1 - recent_partition_validator_threads: 1 - run_time: 2 run_time_unit: "HOURS" @@ -54,12 +46,6 @@ system_under_test: worker_threads: 10 root: "/tmp/harry/" -# Model is responsible for tracking logical timestamps that -model: - exhaustive_checker: - max_seen_lts: 19 - max_complete_lts: 16 - # Partition descriptor selector controls how partitions is selected based on the current logical # timestamp. Default implementation is a sliding window of partition descriptors that will visit # one partition after the other in the window `slide_after_repeats` times. After that will @@ -77,18 +63,53 @@ clustering_descriptor_selector: default: modifications_per_lts: type: "constant" - constant: 10 + constant: 4 rows_per_modification: type: "constant" - constant: 10 + constant: 2 operation_kind_weights: - WRITE: 97 DELETE_RANGE: 1 + DELETE_SLICE: 1 DELETE_ROW: 1 DELETE_COLUMN: 1 + DELETE_PARTITION: 1 + DELETE_COLUMN_WITH_STATICS: 1 + INSERT_WITH_STATICS: 50 + INSERT: 50 + UPDATE_WITH_STATICS: 50 + UPDATE: 50 column_mask_bitsets: null - max_partition_size: 100 + max_partition_size: 1000 + +# Runner is a is a component that schedules operations that change the cluster (system under test) +# and model state. +runner: + sequential: + partition_visitors: + - logging: + row_visitor: + mutating: {} + - sampler: + trigger_after: 1000 + sample_partitions: 10 + - parallel_validate_recent_partitions: + partition_count: 100 + queries_per_partition: 2 + concurrency: 20 + trigger_after: 10000 + model: + quiescent_checker: {} + - validate_all_partitions: + concurrency: 20 + trigger_after: 100000 + model: + quiescent_checker: {} + +# Model is responsible for tracking logical timestamps that +data_tracker: + default: + max_seen_lts: -1 + max_complete_lts: -1 -# Default Row Visitor -row_visitor: - default: {} \ No newline at end of file +metric_reporter: + no_op: {} \ No newline at end of file diff --git a/conf/external.yaml b/conf/external.yaml index 770dda9..52943b8 100644 --- a/conf/external.yaml +++ b/conf/external.yaml @@ -35,14 +35,6 @@ clock: epoch_length: 1 epoch_time_unit: "SECONDS" -# Runner is a is a component that schedules operations that change the cluster (system under test) -# and model state. -runner: - concurrent: - writer_threads: 2 - round_robin_validator_threads: 1 - recent_partition_validator_threads: 1 - run_time: 2 run_time_unit: "HOURS" @@ -78,18 +70,47 @@ clustering_descriptor_selector: default: modifications_per_lts: type: "constant" - constant: 10 + constant: 4 rows_per_modification: type: "constant" - constant: 10 + constant: 2 operation_kind_weights: - WRITE: 97 DELETE_RANGE: 1 + DELETE_SLICE: 1 DELETE_ROW: 1 DELETE_COLUMN: 1 + DELETE_PARTITION: 1 + DELETE_COLUMN_WITH_STATICS: 1 + INSERT_WITH_STATICS: 50 + INSERT: 50 + UPDATE_WITH_STATICS: 50 + UPDATE: 50 column_mask_bitsets: null - max_partition_size: 100 + max_partition_size: 1000 + +# Runner is a is a component that schedules operations that change the cluster (system under test) +# and model state. +runner: + sequential: + partition_visitors: + - logging: + row_visitor: + mutating: {} + - sampler: + trigger_after: 1000 + sample_partitions: 10 + - parallel_validate_recent_partitions: + partition_count: 100 + queries_per_partition: 2 + concurrency: 20 + trigger_after: 10000 + model: + quiescent_checker: {} + - validate_all_partitions: + concurrency: 20 + trigger_after: 100000 + model: + quiescent_checker: {} -# Default Row Visitor -row_visitor: - default: {} \ No newline at end of file +metric_reporter: + no_op: {} \ No newline at end of file diff --git a/docker/Dockerfile.local b/docker/Dockerfile.local index 21ce8fc..4b0032f 100644 --- a/docker/Dockerfile.local +++ b/docker/Dockerfile.local @@ -28,7 +28,7 @@ COPY ./harry-core/target/*.jar /opt/harry/lib/ COPY ./harry-integration/target/lib/ /opt/harry/lib/ COPY ./harry-integration/target/*.jar /opt/harry/ COPY ./test/conf/logback-dtest.xml /opt/harry/test/conf/logback-dtest.xml -COPY ./conf/example.yaml /opt/harry/example.yaml +COPY ./conf/default.yaml /opt/harry/default.yaml COPY ./docker/run.sh /opt/harry/ WORKDIR /opt/harry diff --git a/docker/run.sh b/docker/run.sh index 490b21f..48afa0b 100755 --- a/docker/run.sh +++ b/docker/run.sh @@ -75,7 +75,7 @@ while true; do -cp /opt/harry/lib/*:/opt/harry/harry-integration-0.0.1-SNAPSHOT.jar \ -Dharry.root=${HARRY_DIR} \ harry.runner.HarryRunnerJvm \ - /opt/harry/example.yaml + /opt/harry/default.yaml if [ $? -ne 0 ]; then if [ -e "failure.dump" ]; then diff --git a/pom.xml b/pom.xml index 7e23efd..276a670 100755 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ <properties> <javac.target>1.8</javac.target> <harry.version>0.0.1-SNAPSHOT</harry.version> - <cassandra.version>4.0.0-SNAPSHOT</cassandra.version> + <cassandra.version>4.1-58515c2de6</cassandra.version> <jackson.version>2.11.3</jackson.version> <dtest.version>0.0.7</dtest.version> <jmh.version>1.11.3</jmh.version> @@ -135,28 +135,22 @@ </dependency> <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>27.0-jre</version> - </dependency> - - <dependency> <groupId>org.apache.cassandra</groupId> <artifactId>cassandra-dtest-shaded</artifactId> <version>${cassandra.version}</version> </dependency> <dependency> - <groupId>com.datastax.cassandra</groupId> - <artifactId>cassandra-driver-core</artifactId> - <version>3.6.0</version> + <groupId>org.reflections</groupId> + <artifactId>reflections</artifactId> + <version>0.9.12</version> </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-lang3</artifactId> - <version>3.1</version> - </dependency> + <dependency> + <groupId>com.datastax.cassandra</groupId> + <artifactId>cassandra-driver-core</artifactId> + <version>3.6.0</version> + </dependency> <dependency> <groupId>org.apache.commons</groupId> diff --git a/run-jvm.sh b/run-jvm.sh index 6c330f8..e0999b5 100755 --- a/run-jvm.sh +++ b/run-jvm.sh @@ -46,4 +46,4 @@ java -ea \ -Dorg.apache.cassandra.test.logback.configurationFile=file://test/conf/logback-dtest.xml \ -cp harry-integration/target/harry-integration-0.0.1-SNAPSHOT.jar:$(find harry-integration/target/dependency/*.jar | tr -s '\n' ':'). \ harry.runner.HarryRunnerJvm \ - conf/example.yaml \ No newline at end of file + conf/default.yaml --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
