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.