This project implements a distributed MapReduce system using Go and gRPC.
- Distributed processing with master and worker nodes
- Fault tolerance with task reassignment(WIP)
- Configurable through command-line flags
- Supports custom map and reduce functions
- Comprehensive test suite with 46+ unit tests
- Go 1.16+
- gRPC
cmd/: Command-line applicationsmaster/: Master node implementationworker/: Worker node implementationrpc/: Protocol buffer definitions and generated gRPC codeinternal/: Shared internal packages
This project includes comprehensive unit tests covering core functionality.
go test ./...go test -cover ./...go test -v ./...go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.outgo test ./master/...
go test ./worker/...- Master module: 12.6% coverage, 28 tests
- Worker module: 10.6% coverage, 18 tests
- Total: 46+ tests passing
Contributions are welcome. Please fork the repository and submit a pull request with your changes.
Add tests✅ Done (46+ tests implemented)- Code refactoring
- Properly close worker connections
- Fault tolerance improvements
- Add integration tests with mock gRPC servers
- Increase test coverage for I/O operations