3
3
</p >
4
4
5
5
# PatrickDB
6
+
6
7
![ Build Status] ( https://img.shields.io/travis/com/patrickkoss/patrick-db/master )
7
8
![ Coverage] ( https://img.shields.io/codecov/c/github/patrickkoss/patrick-db )
8
9
![ License] ( https://img.shields.io/github/license/patrickkoss/patrick-db )
11
12
![ PRs] ( https://img.shields.io/github/issues-pr/patrickkoss/patrick-db )
12
13
![ Forks] ( https://img.shields.io/github/forks/patrickkoss/patrick-db )
13
14
![ Stars] ( https://img.shields.io/github/stars/patrickkoss/patrick-db )
14
- ![ Language] (https://img.shields.io/github/languages/top/patrickkoss/patrick-db
15
15
16
- patrick-db is a simplified Rust-based database designed to demonstrate distributed database principles. This distributed
16
+ PatrickDB is a simplified Rust-based database designed to demonstrate distributed database principles. This distributed
17
17
key-value store employs Zookeeper for replication and partitioning. Data is stored in a row-based format using a
18
18
file-based system.
19
19
@@ -24,7 +24,8 @@ patrick-db's storage and index engines can be integrated into other projects.
24
24
25
25
![ Architecture] ( ./media/architecture.png )
26
26
27
- Clients compatible with gRPC or REST can connect to patrick-db, such as the [ cli] ( ./server/src/client.rs ) tool located in
27
+ Clients compatible with gRPC or REST can connect to patrick-db, such as the [ cli] ( ./server/src/client.rs ) tool located
28
+ in
28
29
the [ server] ( ./server ) directory.
29
30
30
31
Envoy, which serves multiple purposes, is used here to interchange REST and gRPC.
@@ -38,3 +39,24 @@ is chosen.
38
39
39
40
The [ database] ( server/src/server.rs ) itself is a gRPC server that implements a file-based storage system. In its role as
40
41
a leader, it replicates data to followers using statement replication.
42
+
43
+ # Getting Started
44
+
45
+ Start all components (Zookeeper, Envoy, Router, and two Partitions with one Leader and Replica) inside docker
46
+ containers:
47
+
48
+ ``` bash
49
+ make run-all-docker
50
+ ```
51
+
52
+ Lint all components:
53
+
54
+ ``` bash
55
+ make lint
56
+ ```
57
+
58
+ Run all tests:
59
+
60
+ ``` bash
61
+ make test
62
+ ```
0 commit comments