This is a cloned repository from MIT's distributed system course
This project uses Go Programming Language Following is the project directory structure:
├── go.mod
├── LICENSE
├── Makefile
├── README.md
└── src
├── kvraft
├── labgob
├── labrpc
├── main
├── models
├── mr
├── mrapps
├── porcupine
├── raft
├── shardkv
└── shardmaster
This project is added with go.mod
file. Therefore no need to set GOPATH
for this project.
Simply clone the repository and following test run should pass.
Check more on Go Module (https://github.com/golang/go/wiki/Modules#faqs--gomod-and-gosum)
Testing word count application
[new terminal]
1. cd main
2. go build -buildmode=plugin ../mrapps/wc.go && go run mrmaster.go pg-*.txt
[another terminal]
1. cd main
2. go run mrworker.go wc.so
Testing all the application inside /mrapps/
1. sh ./test-mr.sh
1. cd raft
2. go test run 2A / 2B or 2C