talent-plan-tinykv/README.md
kana112233 b19552c109 fix: tinykv-server argument db-path (#137)
fix  tinykv-server  argument  change `--db-path=data` to `-path=data`

Co-authored-by: Connor <zbk602423539@gmail.com>
2020-04-30 15:31:26 +08:00

50 lines
1.8 KiB
Markdown

# The TinyKV Course
This course is a series of labs on a key-value storage system built with the Raft consensus algorithm. These labs are inspired by the famous [MIT 6.824](http://nil.csail.mit.edu/6.824/2018/index.html) course, but aim to be closer to industry implementations. The whole course is pruned from [TiKV](github.com/tikv/tikv) and re-written in Go. After completing this course, you will have the knowledge to implement a basic key-value storage service with distributed transactions and fault-tolerance and better understanding of TiKV implementation.
The whole project is a skeleton code for a kv server and a scheduler server at initial, and you need to finish the core logic step by step:
- LAB1: build a standalone key-value server
- LAB2: build a fault tolerant key-value server with Raft
- LAB3: support multi Raft group and balance scheduling on top of LAB2
- LAB4: support distributed transaction on top of LAB3
**Important note: This course is still in developing, and the document is incomplete.** Any feedback and contribution is greatly appreciated. Please see help wanted issues if you want to join in the development.
## Build
```
make
```
## Test
```
make test
```
## Run(Not runnable now)
Put the binary of `tinyscheduler-server`, `tinykv-server` and `tidb-server` into a single dir.
Under the binary dir, run the following commands:
```
mkdir -p data
```
```
./tinyscheduler-server
```
```
./tinykv-server -path=data
```
```
./tinysql-server --store=tikv --path="127.0.0.1:2379"
```
## Documentation
[Course material](https://docs.google.com/document/d/1Z3OrUOq28a44UaipQiagwfM_py6gS9nLz-znk6jtMpU/edit#) is in google doc now. It will be moved to github once polish finsihed.
This repo contains a single module: tinykv. Each package is documented either in a doc.go file or, if it is a single
file package, in the single file.