Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/charlieroth/gossip-glomers
Fly's "Gossip Glomers" Challenge in Swift
https://github.com/charlieroth/gossip-glomers
distributed-systems gossip-glomers swift
Last synced: 26 days ago
JSON representation
Fly's "Gossip Glomers" Challenge in Swift
- Host: GitHub
- URL: https://github.com/charlieroth/gossip-glomers
- Owner: charlieroth
- Created: 2024-05-27T15:05:49.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-25T10:50:41.000Z (7 months ago)
- Last Synced: 2024-12-11T23:44:33.114Z (about 1 month ago)
- Topics: distributed-systems, gossip-glomers, swift
- Language: Swift
- Homepage: https://fly.io/dist-sys/
- Size: 13.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gossip Glomers
Solving Fly's _Gossip Glomers_ distributed systems challenges with Swift
## Challenge Checklist
- [x] Challenge 1: Echo
- [x] Challenge 2: Unique ID Generation
- [x] Challenge 3a: Single-Node Broadcast
- [x] Challenge 3b: Multi-Node Broadcast
- [x] Challenge 3c: Fault Tolerant Broadcast
- [x] Challenge 3d: Efficient Broadcast, Part 1
- [x] Challenge 3e: Efficient Broadcast, Part 2
- [x] Challenge 4: Grow-Only Counter
- [x] Challenge 5a: Single-Node Kafka-Style Log
- [x] Challenge 5b: Multi-Node Kafka-Style Log
- [x] Challenge 5c: Efficient Kafka-Style Log (See `MultiNodeKafka/`
solution)
- [x] 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
```bash
./maelstrom test -w echo --bin ~/path/to/bin --node-count 1 --time-limit 10
```### Challenge 2: Unique ID Generation
```bash
./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
```bash
./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 1 --time-limit 20 --rate 10
```### Challenge 3b: Multi-Node Broadcast
```bash
./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 5 --time-limit 20 --rate 10
```### Challenge 3c: Fault-Tolerant Broadcast
```bash
./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 5 --time-limit 20 --rate 10 --nemesis partition
```### Challenge 3d: Efficient Broadcast, Part I
```bash
./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 25 --time-limit 20 --rate 100 --latency 100
```### Challenge 3e: Efficient Broadcast, Part II
```bash
./maelstrom test -w broadcast --bin ~/path/to/bin --node-count 25 --time-limit 20 --rate 100 --latency 100
```### Challenge 4: Grow-Only Counter
```bash
./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
```bash
./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
```bash
./maelstrom test -w kafka --bin ~/path/to/bin --node-count 2 --concurrency 2n --time-limit 20 --rate 1000
```### Challenge 5c: Efficient Kafka-Style Log
```bash
./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
```bash
./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
```bash
./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
```bash
./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
```