Frederick Lindsey (fl1414) and Cyrus Vahidi (cv114)
All systems run on the local machine. There are three configurations, system.0
, system.1
, and system.2
. system.0
has the default configuration as specified in the exercise.
To run any system, run the following:
$ make system.{x}
Clearly, you should replace {x}
above with whichever system number you wish to run.
Representative logs for each system are available such that system.0
's log can be found at system.0.log
The default configuration expects to transact 1000-2000 times per second (after flushing).
This configuration intends to show the slow down of the system as more machines are added and consensus takes much longer to be achieved. By having so many servers, there is a huge increase in the number of messages that must pass before consensus is achieved also. Importantly, what this configuration explicitly shows is how performance is dependent on the ability of any local system to context switch and how important the network is in determining performance.
Here, the configuration is used to flood the one server with messages to determine how flooding affects consensus. Consensus is trivially achieved as there is only one acceptor in the system. Any performance degradation can therefore be attributed to the flooding of replicas and other components such that the system is unable to process messages received effectively.