https://github.com/andrewlee302/distributed-system
Creative and educational project for distributed system
https://github.com/andrewlee302/distributed-system
consensus consistency distributed-systems education golang graduate-course http keyvaluestore paxos transaction twophasecommit
Last synced: about 2 months ago
JSON representation
Creative and educational project for distributed system
- Host: GitHub
- URL: https://github.com/andrewlee302/distributed-system
- Owner: andrewlee302
- License: mit
- Created: 2017-07-14T09:16:01.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-03-10T12:24:07.000Z (almost 5 years ago)
- Last Synced: 2024-06-21T20:04:27.544Z (over 1 year ago)
- Topics: consensus, consistency, distributed-systems, education, golang, graduate-course, http, keyvaluestore, paxos, transaction, twophasecommit
- Language: Go
- Homepage:
- Size: 1.13 MB
- Stars: 19
- Watchers: 2
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Distributed System Course
[](https://goreportcard.com/report/github.com/andrewlee302/distributed-system)
[](http://opensource.org/licenses/MIT)
[](https://godoc.org/github.com/andrewlee302/distributed-system)
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.
## Modules or library
1. HTTP library over TCP and Unix domain socket
2. 2PC library.
3. Tiny key-value storage module.
4. Transcation-supported shopping web service module over the sharded
key-value storage.
5. Paxos library.
6. Key-value storage module over paxos.
7. Utility for the resouce pool.
7. A final system, including web service, sharded and replicated key-value
storage.
## Testing
Every package has its unit test for functions and performance. (TODO) The final
system will be tested in a container-style way.
## Tips for students
1. "// You may add code here". Not necessary, but you can do it.
2. "// TODO Your code here". Necessary.