https://github.com/longi94/ds17800
https://github.com/longi94/ds17800
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/longi94/ds17800
- Owner: Longi94
- Created: 2017-11-16T12:35:39.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-01-25T17:08:49.000Z (over 7 years ago)
- Last Synced: 2025-01-06T03:21:54.861Z (5 months ago)
- Language: Java
- Size: 520 KB
- Stars: 0
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ds17800
[](https://travis-ci.com/Longi94/ds17800)## Build
`./gradlew assemble`## Run
Servers, dragons and players are run as Java jar files. Run one process for every server or entity with server/port as parameters.#### Server
`java -jar das-server/build/libs/das-server-1.0.0-SNAPSHOT.jar 10100 20100`#### Dragon
`java -jar das-client/build/libs/das-client-1.0.0-SNAPSHOT.jar dragon`#### Player
`java -jar das-client/build/libs/das-client-1.0.0-SNAPSHOT.jar player`## Report
* [Final report (PDF)](https://raw.githubusercontent.com/Longi94/ds17800/master/report/distributed-systems-lab_2017-12-15_18-59.pdf
)
* [LaTeX source](https://www.overleaf.com/read/vccymnszfjkz)## Fault tolerance
* Mirrored servers, no super nodes.## Scalability
* Middleware service for managing masters.
* Entry point for the cliets. Get information about the masters.
* Start up sleeping servers to scale performance.## Replication
* Synchronized masters, replicated states.
* Servers multicasts the command of their clients.## Consistency
* Synchronized masters, replicated states.
* Race conditions are resolved by timestamp or id.### Etc.
* Start with 3 servers.
* Clients have the middleware IP.
* Server handles action delays. On client.
* TCP## Communication types
### Middleware:
* (Incoming)I am client, give me server to connect;
* (Incoming) I am server, add me to server list;
* (Outgoing) Server, are you still alive### Server:
* (Incoming) I am client, here is my move
* (Outgoing) Client, here is status of your move* (Outgoing) Server #i, here is my last moves, do you accept it
* (Incoming) I am Server #i, your moves are accepted/rejected### Client:
* (Outgoing) Hi middleware, I am new client, give me server to connect
* (Outgoing) Server, it is my move
