building of bulletin server
Budget: $250 – $750 CAD
In particular, I expect to be able to launch successfully your server in at least the following scenarios:
For most of Phase 1 testing I will run it like this: ./bbserv -b bbfile1 -f -T 3 -p 3200
For some of the Phase 1 testing (most notably, for testing the concurrent access to the bulletin board file) I will run it like this: ./bbserv -b bbfile1 -f -d -T 3 -p 3200
For Phase 2 I expect to be able to run three instances of the server. For this purpose, the following three commands will be issued in three different directories:
./bbserv -b bbfile1 -f -T 5 -p 3200 -s 3300 localhost:3301 localhost:3302
./bbserv -b bbfile1 -f -T 5 -p 3201 -s 3301 localhost:3300 localhost:3302
./bbserv -b bbfile1 -f -T 5 -p 3202 -s 3302 localhost:3300 localhost:3301
The expectation is that the three instances will accept clients on port numbers 3200, 3201, 3202, respectively and will perform peer to peer synchronization on port numbers 3300, 3301, and 3302, respectively so that their bulletin board files will be kept in sync according to the two-phase commit protocol.
basic - basic client-server communication
concur - concurrency implementation
debug - requested minimal debugging facilities
bbfile - initialization and consistency of the bulletin board file and IDs
bbfile/read - concurrent reading
bbfile/write - exclusive writing
bbfile/rw - correct exclusion of readers and writers
2pc - basic peer synchronization
2pc/prefail - precommit failures
2pc/fail - commit failures
busy - absence of busy loops and/or deadlocks
signal - handling of SIGHUP and SIGQUIT
For most of Phase 1 testing I will run it like this: ./bbserv -b bbfile1 -f -T 3 -p 3200
For some of the Phase 1 testing (most notably, for testing the concurrent access to the bulletin board file) I will run it like this: ./bbserv -b bbfile1 -f -d -T 3 -p 3200
For Phase 2 I expect to be able to run three instances of the server. For this purpose, the following three commands will be issued in three different directories:
./bbserv -b bbfile1 -f -T 5 -p 3200 -s 3300 localhost:3301 localhost:3302
./bbserv -b bbfile1 -f -T 5 -p 3201 -s 3301 localhost:3300 localhost:3302
./bbserv -b bbfile1 -f -T 5 -p 3202 -s 3302 localhost:3300 localhost:3301
The expectation is that the three instances will accept clients on port numbers 3200, 3201, 3202, respectively and will perform peer to peer synchronization on port numbers 3300, 3301, and 3302, respectively so that their bulletin board files will be kept in sync according to the two-phase commit protocol.
basic - basic client-server communication
concur - concurrency implementation
debug - requested minimal debugging facilities
bbfile - initialization and consistency of the bulletin board file and IDs
bbfile/read - concurrent reading
bbfile/write - exclusive writing
bbfile/rw - correct exclusion of readers and writers
2pc - basic peer synchronization
2pc/prefail - precommit failures
2pc/fail - commit failures
busy - absence of busy loops and/or deadlocks
signal - handling of SIGHUP and SIGQUIT