github.com/kata-containers/tests@v0.0.0-20240307153542-772105b56064/stability/cassandra_stress.sh (about) 1 #!/bin/bash 2 # 3 # Copyright (c) 2023 Intel Corporation 4 # 5 # SPDX-License-Identifier: Apache-2.0 6 7 set -o pipefail 8 9 # General env 10 SCRIPT_PATH=$(dirname "$(readlink -f "$0")") 11 source "${SCRIPT_PATH}/../metrics/lib/common.bash" 12 13 IMAGE="docker.io/library/cassandra:latest" 14 CONTAINER_NAME="${CONTAINER_NAME:-cassandra_test}" 15 DOCKER_IMAGE="cassandra:latest" 16 PAYLOAD_ARGS="${PAYLOAD_ARGS:-tail -f /dev/null}" 17 CMD="cassandra -R" 18 19 function main() { 20 local cmds=("docker") 21 22 init_env 23 check_cmds "${cmds[@]}" 24 sudo -E "${DOCKER_EXE}" pull "${DOCKER_IMAGE}" 25 sudo -E "${DOCKER_EXE}" save -o "${DOCKER_IMAGE}.tar" "${DOCKER_IMAGE}" 26 sudo -E "${CTR_EXE}" i import "${DOCKER_IMAGE}.tar" 27 28 sudo -E "${CTR_EXE}" run -d --runtime "${CTR_RUNTIME}" "${IMAGE}" "${CONTAINER_NAME}" sh -c "${PAYLOAD_ARGS}" 29 sudo -E "${CTR_EXE}" t exec --exec-id 1 "${CONTAINER_NAME}" sh -c "${CMD}" 30 info "Write one million rows" 31 local WRITE_CMD="./opt/cassandra/tools/bin/cassandra-stress write n=1000000 -rate threads=50" 32 sudo -E "${CTR_EXE}" t exec --exec-id 2 "${CONTAINER_NAME}" sh -c "${WRITE_CMD}" 33 info "Load one row with default schema" 34 local CQL_WRITE_CMD="./opt/cassandra/tools/bin/cassandra-stress write n=1 c1=one -mode native cql3 -log file-create_schema.log" 35 sudo -E "${CTR_EXE}" t exec --exec-id 3 "${CONTAINER_NAME}" sh -c "${CQL_WRITE_CMD}" 36 info "Run a write workload using CQL" 37 local REAL_WRITE_CMD="./opt/cassandra/tools/bin/cassandra-stress write n=1000000 cl=one -mode native cql3 -schema keyspace='keyspace1' -log file=load_1M_rows.log" 38 sudo -E "${CTR_EXE}" t exec --exec-id 4 "${CONTAINER_NAME}" sh -c "${REAL_WRITE_CMD}" 39 40 clean_env_ctr 41 } 42 43 main "$@"