You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by if...@apache.org on 2021/07/15 07:27:47 UTC
[cassandra-harry] 03/04: Adjust config files
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 <ol...@gmail.com>
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: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org