- Set up CloudLab experiment using
cloudconfig.py
. The script allocates the desired number of nodes and creates links connecting them all to a LAN, and also sets the latency of each link, to simulate cross-DC latency. The latency will be set when configuring an experiment with the profile, and cannot be changed unless you create a new experiment. It is set to use a pre-created image with Cassandra installed to reduce setup time. - Edit
servers.txt
with the SSHs command provided by CloudLab, separated by a new line. - On your local machine, run
sync.sh
to copy the repository code to each of the machines. - On your local machine, run
python shell.py
to launch a tmux session with SSH connections to each of the machines.shell.py
provides an easy way to send keystrokes to all of the machines at once.- If you are using
shell.py
, all the following commands are to be run on your local machine. - Alternatively, you can manually launch SSH connections to each of the machines, and run the commands after
python shell.py send
on each of them while in the~/giza
directory, replacing[i]
with the number of the machine (1 for node1 on CloudLab, 2 for node2, etc.). Where it says'Enter'
, simply press the enter key.
- Run
python shell.py send './setup_giza.sh [i]' 'Enter'
to set up Cassandra on each machine for the Giza tests. - Run
python shell.py send './build.sh' 'Enter'
to build Giza on each of the machines. - Run
python shell.py send './giza -maddr 192.168.1.1 -n 5 -addr 192.168.1.[i] -o 128 -T 1'
to type the test command into each of the tmux panes.
- Run
python shell.py send './setup_giza.sh [i]' 'Enter'
to set up Cassandra on each machine for the Giza tests. - Run
python shell.py send './build.sh' 'Enter'
to build Giza on each of the machines. - Run
python shell.py send './giza -maddr 192.168.1.1 -n 5 -addr 192.168.1.[i] -o 1 -T 1'
to type the test command into each of the tmux panes.
- Run
python shell.py send './setup_cassandra.sh [i]' 'Enter'
to set up Cassandra on each machine for the Cassandra tests. - Run
python shell.py send './build.sh' 'Enter'
to build Giza on each of the machines. - Run
python shell.py send './giza -maddr 192.168.1.1 -m cassandra -addr 192.168.1.[i] -o 128 -T 1'
to type the test command into each of the tmux panes.
- Press the enter key in node1 (which should be the top left tmux pane), to start the master instance first.
- Once the master is ready, run
python shell.py send 'Enter'
to start all the other instances. - To end the tests, run
python shell.py send 'C-c'
to send the ctrl+c interrupt on all machines. - To end the tmux session, run
python shell.py send 'exit' 'Enter' 'exit' 'Enter'
. - Copy the latest directory in
results/
and runcopy.sh
to copy all the latency outputs.
Run python plotFigs/plot_figs.py
. The plots will be generated in plotFigs/plots/
.