1+ #! /bin/bash
2+ # Script to install and run YCSB locally on a Linux machine.
3+
4+ MAVEN_VERSION=" 3.9.4"
5+ YCSB_VERSION=" 0.17.0"
6+ LOAD_THREADS=16
7+ RUN_THREADS=16
8+
9+ if command -v yum & > /dev/null; then
10+ sudo yum install java-devel -y
11+ elif command -v apt & > /dev/null; then
12+ sudo apt install default-jdk -y
13+ else
14+ echo " Package manager not supported!"
15+ exit 1
16+ fi
17+
18+ if ! command -v maven & > /dev/null; then
19+ echo " Installing maven ..."
20+ pushd /tmp
21+ wget " https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION} /binaries/apache-maven-${MAVEN_VERSION} -bin.tar.gz"
22+ sudo tar -xzvf " apache-maven-${MAVEN_VERSION} -bin.tar.gz" -C /usr/local
23+ popd
24+ pushd /usr/local
25+ sudo ln -s apache-maven-* maven
26+ echo " export M2_HOME=/usr/local/maven" | sudo tee -a /etc/profile.d/maven.sh
27+ echo " export PATH=${M2_HOME} /bin:${PATH} " | sudo tee -a /etc/profile.d/maven.sh
28+ popd
29+ fi
30+
31+ pushd ~
32+ if [ -d " ycsb-${YCSB_VERSION} " ]; then
33+ echo " Found YCSB in home directory!"
34+ else
35+ echo " Installing YCSB ..."
36+ wget " https://github.com/brianfrankcooper/YCSB/releases/download/${YCSB_VERSION} /ycsb-${YCSB_VERSION} .tar.gz"
37+ tar -xzvf " ycsb-${YCSB_VERSION} .tar.gz"
38+
39+ pushd " ycsb-${YCSB_VERSION} "
40+ echo " recordcount=56320000" > workloads/workloadEvergreen_100read
41+ echo " operationcount=20000000" >> workloads/workloadEvergreen_100read
42+ echo " maxexecutiontime=360" >> workloads/workloadEvergreen_100read
43+ echo " workload=site.ycsb.workloads.CoreWorkload" >> workloads/workloadEvergreen_100read
44+ echo " readallfields=true" >> workloads/workloadEvergreen_100read
45+ echo " readproportion=1.0" >> workloads/workloadEvergreen_100read
46+ echo " updateproportion=0.0" >> workloads/workloadEvergreen_100read
47+ echo " scanproportion=0" >> workloads/workloadEvergreen_100read
48+ echo " insertproportion=0.0" >> workloads/workloadEvergreen_100read
49+ echo " requestdistribution=zipfian" >> workloads/workloadEvergreen_100read
50+ popd
51+ fi
52+
53+ pushd " ycsb-${YCSB_VERSION} "
54+ echo " Running the load phase ..."
55+ ./bin/ycsb load mongodb -s -P workloads/workloadEvergreen_100read -threads $LOAD_THREADS
56+
57+ echo " Running the run phase ..."
58+ ./bin/ycsb run mongodb -s -P workloads/workloadEvergreen_100read -threads $RUN_THREADS
59+
60+ popd
61+ popd
62+
63+ exit 0
0 commit comments