Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More interesting examples of testing distribution system building blocks #99

Closed
chenliu0831 opened this issue Mar 2, 2023 · 3 comments

Comments

@chenliu0831
Copy link

chenliu0831 commented Mar 2, 2023

Description

It would be great to provide a few more complex example to showcase more Turmoil capabilities. The example should be succinct with lightweight dependencies but need functional testing for:

  1. Fault tolerance
  2. Scalability to many nodes

Proposal

Food for thought - https://martinfowler.com/articles/patterns-of-distributed-systems/ with a few candidates:

  1. Heartbeat: seems straightforward, can be made more complex with Gossip?
  2. Leader - Follower: some reference implementation here for raft, seems to touch heartbeat, quorum as well - too big?
  3. 2PC
    Others?? Happy to contribute
@chenliu0831
Copy link
Author

I find a good starting point for 2PC in Rust from UT-Austin CS Lab (https://www.cs.utexas.edu/~rossbach/cs378-f21/lab/two-phase-commit-cs378-process.html). Extra Credit involves handling some fault tolerance cases:

  • Implement a recovery protocol. Allow a failed participant to rejoin.
  • Support coordinator failure.

@mcches
Copy link
Contributor

mcches commented Jul 25, 2023

@chenliu0831 this has been open for awhile. If you aren't planning to implement any examples I'd like to close the issue.

@mcches
Copy link
Contributor

mcches commented Aug 24, 2023

Closing due to inactivity.

@mcches mcches closed this as completed Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants