The fantastic experiment for education on distributed system, including the ubiquitous communication over the Web, classic techniques for scaling and efficient storage and a popular application case, aims to incredibly capture the essences of the difficult but useful distributed system theory, such as the two-phase protocol and the paxos consensus protocol. It covers the common technique issues almost in all the distributed systems, including communication, data consistency, parallism, concurrence, replication. The techniques take attentions on the performance, fault-tolerance, scaling and user-friendliness, which are important metrics for distributed systems.
- HTTP library over TCP and Unix domain socket
- 2PC library.
- Tiny key-value storage module.
- Transcation-supported shopping web service module over the sharded key-value storage.
- Paxos library.
- Key-value storage module over paxos.
- Utility for the resouce pool.
- A final system, including web service, sharded and replicated key-value storage.
Every package has its unit test for functions and performance. (TODO) The final system will be tested in a container-style way.
- "// You may add code here". Not necessary, but you can do it.
- "// TODO Your code here". Necessary.