Instructor
Lecture:
|
Main /
Project1-SpecThis page may be edited using the wiki password sent in email. Ideally, we will converge on a spec by at least March 8th. PerformanceYour server must be able to sustain 300 operations per second on a reasonable machine. DurabilityYour service does not need to survive the failure of all instances simultaneously. ConsistencyYour service should provide strong consistency in the absence of server failures. The client may not be able to communicate with all servers (e.g., broken network link), but should still see strongly consistent results. Server namesYour server should read in a file in the current directory named "servers.txt" to learn of the other instances of the service. This file will contain the set of servers and the ports to listen on. Each server must use a unique port for client-server communication, chosen from the set 8081-8084. Servers are free to use other ports to communicate between servers, such as for replication. The first line will refer to the server itself: For example 192.168.2.2:8081 192.168.2.3:8082 192.168.2.4:8083 192.168.2.5:8084 ProtocolThere is no standard protocol. Your server is only required to work with the client you provide. Client interfaceYou will provide a shared library named "lib739kv.so" implementing the interface to your server. The client code must run on standard CS department workstations. Here are the functions you must implement:
There are restrictions on keys and values:
|