Skip to content

charlieroth/gossip-glomers

Repository files navigation

Gossip Glomers

Solving Fly's Gossip Glomers distributed systems challenges with Swift

Challenge Checklist

  • Challenge 1: Echo
  • Challenge 2: Unique ID Generation
  • Challenge 3a: Single-Node Broadcast
  • Challenge 3b: Multi-Node Broadcast
  • Challenge 3c: Fault Tolerant Broadcast
  • Challenge 3d: Efficient Broadcast, Part 1
  • Challenge 3e: Efficient Broadcast, Part 2
  • Challenge 4: Grow-Only Counter
  • Challenge 5a: Single-Node Kafka-Style Log
  • Challenge 5b: Multi-Node Kafka-Style Log
  • Challenge 5c: Efficient Kafka-Style Log (See MultiNodeKafka/ solution)
  • Challenge 6a: Single-Node, Totally Available Transactions
  • Challenge 6b: Totally-Available, Read Uncommitted Transactions
  • Challenge 6c: Totally-Available, Read Committed Transactions

Maelstrom Commands

Challenge 1: Echo

./maelstrom test -w echo --bin ~/path/to/bin --node-count 1 --time-limit 10

Challenge 2: Unique ID Generation

./maelstrom test -w unique-ids --bin ~/path/to/bin --time-limit 30 --rate 1000 --node-count 3 --availability total --nemesis partition

Challenge 3a: Single-Node Broadcast

./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 1 --time-limit 20 --rate 10

Challenge 3b: Multi-Node Broadcast

./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 5 --time-limit 20 --rate 10

Challenge 3c: Fault-Tolerant Broadcast

./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 5 --time-limit 20 --rate 10 --nemesis partition

Challenge 3d: Efficient Broadcast, Part I

./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 25 --time-limit 20 --rate 100 --latency 100

Challenge 3e: Efficient Broadcast, Part II

./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 25 --time-limit 20 --rate 100 --latency 100

Challenge 4: Grow-Only Counter

./maelstrom test -w g-counter --bin ~/path/to/bin --node-count 3 --rate 100 --time-limit 20 --nemesis partition

Challenge 5a: Single-Node Kafka-Style Log

./maelstrom test -w kafka --bin ~/path/to/bin --node-count 1 --concurrency 2n --time-limit 20 --rate 1000

Challenge 5b: Multi-Node Kafka-Style Log

./maelstrom test -w kafka --bin ~/path/to/bin --node-count 2 --concurrency 2n --time-limit 20 --rate 1000

Challenge 5c: Efficient Kafka-Style Log

./maelstrom test -w kafka --bin ~/path/to/bin --node-count 2 --concurrency 2n --time-limit 20 --rate 1000

Challenge 6a: Single-Node, Totally-Available Transactions

./maelstrom test -w txn-rw-register --bin ~/path/to/bin --node-count 1 --time-limit 20 --rate 1000 --concurrency 2n --consistency-models read-uncommitted --availability total

Challenge 6b: Totally-Available, Read Uncommited Transactions

./maelstrom test -w txn-rw-register --bin ~/path/to/bin --node-count 2 --concurrency 2n --time-limit 20 --rate 1000 --consistency-models read-uncommitted

./maelstrom test -w txn-rw-register --bin ~/path/to/bin --node-count 2 --concurrency 2n --time-limit 20 --rate 1000 --consistency-models read-uncommitted --availability total --nemesis partition

Challenge 6c: Totally-Available, Read Commited Transactions

./maelstrom test -w txn-rw-register --bin ~/path/to/bin --node-count 2 --concurrency 2n --time-limit 20 --rate 1000 --consistency-models read-committed --availability total –-nemesis partition

Releases

No releases published

Packages

No packages published

Languages