github.com/kchristidis/fabric@v1.0.4-0.20171028114726-837acd08cde1/test/tools/LTE/scripts/runbenchmarks.sh (about)

     1  #!/bin/bash
     2  #
     3  # Copyright IBM Corp. All Rights Reserved.
     4  #
     5  # SPDX-License-Identifier: Apache-2.0
     6  #
     7  
     8  source ./benchmarks.sh
     9  
    10  ########################################################################################################
    11  # This shell script contains a series of benchmark tests
    12  ########################################################################################################
    13  
    14  function varyNumParallelTxPerChain {
    15      for v in "${ArrayNumParallelTxPerChain[@]}"
    16      do
    17          NumParallelTxPerChain=$v
    18          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    19      done
    20  }
    21  
    22  function varyNumChains {
    23      for v in "${ArrayNumChains[@]}"
    24      do
    25          NumChains=$v
    26          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    27      done
    28  }
    29  
    30  function varyNumKeysInEachTx {
    31      for v in "${ArrayNumKeysInEachTx[@]}"
    32      do
    33          NumKeysInEachTx=$v
    34          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    35      done
    36  }
    37  
    38  function varyKVSize {
    39      for v in "${ArrayKVSize[@]}"
    40      do
    41          KVSize=$v
    42          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    43      done
    44  }
    45  
    46  function varyBatchSize {
    47      for v in "${ArrayBatchSize[@]}"
    48      do
    49          BatchSize=$v
    50          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    51      done
    52  }
    53  
    54  function varyNumParallelTxWithSingleChain {
    55      NumChains=1
    56      for v in "${ArrayNumParallelTxWithSingleChain[@]}"
    57      do
    58          NumParallelTxPerChain=$v
    59          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    60      done
    61  }
    62  
    63  function varyNumChainsWithNoParallelism {
    64      NumParallelTxPerChain=1
    65      for v in "${ArrayNumChainsWithNoParallelism[@]}"
    66      do
    67          NumChains=$v
    68          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    69      done
    70  }
    71  
    72  function varyNumTxs {
    73      for v in "${ArrayNumTxs[@]}"
    74      do
    75          NumTotalTx=$v
    76          rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    77      done
    78  }
    79  
    80  function runLargeDataExperiment {
    81      NumKVs=10000000
    82      NumTotalTx=10000000
    83      rm -rf $DataDir;runInsertTxs;runReadWriteTxs
    84  }
    85  
    86  function usage () {
    87      printf "Usage: ./runbenchmarks.sh [-f parameter_file_name] [test_name]\nAvailable tests (use \"all\" to run all tests):
    88  varyNumParallelTxPerChain
    89  varyNumChains
    90  varyNumParallelTxWithSingleChain
    91  varyNumChainsWithNoParallelism
    92  varyNumKeysInEachTx
    93  varyKVSize
    94  varyBatchSize
    95  varyNumTxs
    96  runLargeDataExperiment\n"
    97  }
    98  
    99  PARAM_FILE=""
   100  
   101  while getopts ":f:" opt; do
   102    case $opt in
   103      f)
   104        printf "Parameter file: $OPTARG"
   105        PARAM_FILE=$OPTARG;;
   106      \?)
   107        printf "Error: invalid parameter -$OPTARG!"  >> /dev/stderr
   108        usage
   109        exit 1;;
   110    esac
   111  done
   112  
   113  if [ ! $PARAM_FILE ]
   114  then
   115    printf "Error: No Parameter file given!"  >> /dev/stderr
   116    usage
   117    exit 1
   118  else
   119    source $PARAM_FILE
   120  fi
   121  
   122  shift $(expr $OPTIND - 1 )
   123  
   124  case $1 in
   125    varyNumParallelTxPerChain)
   126      varyNumParallelTxPerChain ;;
   127    varyNumChains)
   128      varyNumChains ;;
   129    varyNumParallelTxWithSingleChain)
   130      varyNumParallelTxWithSingleChain ;;
   131    varyNumChainsWithNoParallelism)
   132      varyNumChainsWithNoParallelism ;;
   133    varyNumKeysInEachTx)
   134      varyNumKeysInEachTx ;;
   135    varyKVSize)
   136      varyKVSize ;;
   137    varyBatchSize)
   138      varyBatchSize ;;
   139    varyNumTxs)
   140      varyNumTxs ;;
   141    runLargeDataExperiment)
   142      runLargeDataExperiment ;;
   143    help)
   144      usage
   145      ;;
   146    all)
   147      varyNumParallelTxPerChain
   148      varyNumChains
   149      varyNumParallelTxWithSingleChain
   150      varyNumChainsWithNoParallelism
   151      varyNumKeysInEachTx
   152      varyKVSize
   153      varyBatchSize
   154      varyNumTxs
   155      runLargeDataExperiment ;;
   156    *)
   157      printf "Error: test name empty/incorrect!\n"  >> /dev/stderr
   158      usage
   159      exit 1 ;;
   160  esac