TinySQL is a course designed to teach you how to implement a distributed relational database in Go. TinySQL is also the name of the simplifed version of TiDB.
Experience with Go is required. If not, it is recommended to learn A Tour of Go first.
The detailed information you can get in the directory courses
.
This course will take you from idea to implementation, with the essential topics of distributed relational database covered.
The course is organized into three parts:
-
Implement the distributed transaction protocol based on Percolator.
-
Explains the life of a SQL and transaction, in which there are 3 sub tasks.
- Implement the general part of SQL execution phases.
- Implement update statement executor.
- Implement select and projection executor.
-
There is a further course, implement pessimistic transaction. Pessimistic transaction eliminate contention collapse.
TinySQL is under the Apache 2.0 license. See the LICENSE file for details.