Skip to content

haraldng/omnipaxos-playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

preview

OmniPaxos Playground

An interactive dashboard for OmniPaxos. OmniPaxos is a Rust library used for building highly-available distributed systems. Users can input operations and simulate network failures to get a visualization of the behavior of OmniPaxos.

📺 Check out the playground in action on YouTube!

Requirements

Usage

Run and attach to the playground:

$ ./playground.sh attach

(exit by pressing 'q' or 'esc')

Stop the playground:

$ ./playground kill

Attach to dashboard of individual servers (s1, s2, ... , s5)

$ docker attach s1

Playground commands

  • Normal requests: put <key> <value> [server], get <key> [server], delete <key> [server]
  • Batch of write requests: batch <num_requests>
  • Partial connectivity scenarios: scenario <chained | constrained | qloss>
  • Set connections: connection <server1> <server2> <true | false>
  • Disconnect server from all other servers: connection <server> false
  • Restore all connections: scenario restore

Credits

Kudos to the maintainers and contributors of the ratatui crate that enabled us to build the OmniPaxos dashboard in Rust.