/
run_paxos.sh
executable file
·49 lines (36 loc) · 971 Bytes
/
run_paxos.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/zsh
zparseopts -D -E -- \
b=BATCH \
c:=CONFLICT_PERC q:=REQUEST_COUNT r:=ROUND_COUNT w:=WRITE_PERC \
h=HELP -help=HELP
if [[ -n "$HELP" ]]; then
cat <<EOF
usage:
-b : batch
-c : conflict percentage
-q : request count
-r : round count
-w : write percentage
EOF
exit 0
fi
blue() { print -P "%F{blue}%B$1%b%f" }
green() { print -P "%F{green}%B$1%b%f" }
red() { print -P "%F{red}%B$1%b%f" }
# trap CTRL-C input, and kill every process created
trap "pkill -P $$; sleep 1; exit 1;" INT
ADDR="127.0.0.1"
ADDRS=( "$ADDR:7070" "$ADDR:7071" "$ADDR:7072" )
LOG_FILES=( "log0" "log1" "log2" )
blue "running multi paxos with ${#ADDRS} servers and a client ..."
make -C ${0:A:h}
for ((i = 1; i <= ${#ADDRS}; i++)); do
bin/multipaxos $BATCH -addr "$ADDRS[$i]" -id $((i - 1)) -log "log$i" ${ADDRS[@]} &
done
sleep 3
bin/client -log 'logc' \
$CONFLICT_PERC $REQUEST_COUNT $ROUND_COUNT $WRITE_PERC \
${ADDRS[@]}
pkill -P $$
sleep 1
green "DONE !"