blob: 18dbfaecf07461f1c00117f29f18174cd758bd19 [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:
fixed:
keyspace: harry
table: test_table
partition_keys:
pk1: bigint
pk2: ascii
clustering_keys:
ck1: ascii
ck2: bigint
regular_columns:
v1: ascii
v2: bigint
v3: ascii
v4: bigint
static_keys:
s1: ascii
s2: bigint
s3: ascii
s4: bigint
# 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:
offset:
offset: 1000
drop_schema: false
create_schema: true
truncate_table: true
# 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.
#
# If you are running more than one Harry instance against the keyspace, you want to set `position_offset`,
# which ensures that next runner will not intersect with a current one. For example, if you expect
# this runner to visit less than 1M partitions over ~10*100*1M LTS, set other runner's offset to 1M.
#
# When doing so, we advise to also set `position_window_size` to make sure your runner exits before it
# crosses into the other runner's partition space.
#
# Optionally, you can just configure `total_runners`, a number of runners you are about to set up, and
# `runner_index`, an index of the current runner.
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:
operations_per_lts;:
type: "constant"
constant: 2
operation_kind_weights:
DELETE_RANGE: 0
DELETE_SLICE: 0
DELETE_ROW: 0
DELETE_COLUMN: 0
DELETE_PARTITION: 0
DELETE_COLUMN_WITH_STATICS: 0
INSERT_WITH_STATICS: 50
INSERT: 50
UPDATE_WITH_STATICS: 50
UPDATE: 50
column_mask_bitsets: null
max_partition_size: 1000
metric_reporter:
no_op: {}
# Data tracker keeps track of in-progress and finished sequences. If you are using
# a concurrent runner with both readers and writers, you want to use a `locking` tracker.
data_tracker:
default: {}