Skip to content

Commit 36744a1

Browse files
committed
Update readme for distributed systems module
1 parent 9d2f37d commit 36744a1

22 files changed

+39
-32
lines changed

07_distributed_systems/01_intro/README.md

-32
This file was deleted.

07_distributed_systems/README.md

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
Description of the module from the official [csi page](https://bradfieldcs.com/csi/):
2+
> Understanding principles and practical considerations for building high-scale data-intensive applications, and learning to reason about tradeoffs between fault tolerance, latency, throughput, consistency and operational overhead.
3+
4+
This folder contains "Distributed" key-value store built for educational purposes, inspired by ideas used in DynamoDB:
5+
- Custom binary format for storing the data on disk and sending KV pairs over the network
6+
- Replications
7+
- Partitioning using Consistent hashing
8+
- Servers register themselves with `etcd`, and clients are made aware of currenly alive server by pulling that data from `etcd`.
9+
10+
Usage:
11+
1. Start 3 server nodes in separate windows, each responsible for
12+
```
13+
server$ go run . primary_partition 0
14+
server$ go run . primary_partition 1
15+
server$ go run . primary_partition 2
16+
```
17+
18+
2. Start clients in other windows:
19+
```
20+
client$ go run .
21+
Welcome to the distributed K-V store client
22+
We support the following syntax:
23+
get foo
24+
set foo=bar
25+
26+
In [1]: get foo
27+
Out[1]: foofoo
28+
...
29+
```
30+
You can also run expect script:
31+
```
32+
client$ go build; expect expect_script_primary.exp 8000
33+
```
34+
Or do it in parallel with `clush`:
35+
```
36+
client$ go build; clush -f 100 -R exec -w [1-10] expect expect_script_primary.exp 8000
37+
```
38+
39+
In server logs you will see that requests are redirected using consistent hashing algorithm.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)