Skip to content
Permalink
Browse files
Adjust config files
  • Loading branch information
ifesdjeen committed Oct 1, 2021
1 parent 469533e commit 59604dbac36a9749c81c29e3739229c64237323c
Showing 7 changed files with 94 additions and 51 deletions.
@@ -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
@@ -35,16 +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:
concurrency: 2
partition_visitors:
- mutating:
row_visitor:
mutating: {}

run_time: 2
run_time_unit: "HOURS"

@@ -73,17 +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

metric_reporter:
default: {}
no_op: {}
@@ -35,16 +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:
concurrency: 2
partition_visitors:
- mutating:
row_visitor:
mutating: {}

run_time: 2
run_time_unit: "HOURS"

@@ -57,6 +47,12 @@ system_under_test:
username: null
password: null

# 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
@@ -74,17 +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: {}

metric_reporter:
default: {}
no_op: {}
@@ -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
@@ -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
24 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>
@@ -134,29 +134,23 @@
<version>1.9.7</version>
</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>
@@ -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
conf/default.yaml

0 comments on commit 59604db

Please sign in to comment.