blob: 3a3c5ab30c3791935e264d1891112344300d5e59 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
seed: 1596731732524
# Default schema provider generates random schema
schema_provider:
default: {}
drop_schema: false
create_schema: true
truncate_table: false
# Clock is a component responsible for mapping _logical_ timestamps to _real-time_ ones.
#
# When reproducing test failures, and for validation purposes, a snapshot of such clock can
# be taken to map a real-time timestamp from the value retrieved from the database in order
# to map it back to the logical timestamp of the operation that wrote this value.
clock:
approximate_monotonic:
history_size: 7300
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"
# System under test: a Cassandra node or cluster. Default implementation is in_jvm (in-jvm DTest cluster).
# Harry also supports external clusters.
system_under_test:
in_jvm:
nodes: 3
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
# retire one partition descriptor, and pick one instead of it.
partition_descriptor_selector:
default:
window_size: 10
slide_after_repeats: 100
# Clustering descriptor selector controls how clusterings are picked within the partition:
# how many rows there can be in a partition, how many rows will be visited for a logical timestamp,
# how many operations there will be in batch, what kind of operations there will and how often
# each kind of operation is going to occur.
clustering_descriptor_selector:
default:
modifications_per_lts:
type: "constant"
constant: 10
rows_per_modification:
type: "constant"
constant: 10
operation_kind_weights:
WRITE: 97
DELETE_RANGE: 1
DELETE_ROW: 1
DELETE_COLUMN: 1
column_mask_bitsets: null
max_partition_size: 100
# Default Row Visitor
row_visitor:
default: {}