TinySQL is a course designed to teach you how to implement a distributed relational database in Go

TinySQL

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.

Prerequisites

Experience with Go is required. If not, it is recommended to learn A Tour of Go first.

Course Overview

The detailed information you can get in the directory courses.

There's a material list. It lists plenty of materials for you to study how a database system works. We picks some of the topics in it and prepare homework for you to have a better understand about it.

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:

  1. Gives a simple interpretation of SQL and relational algebra in preparation for the following course.

  2. Explains the life of a read-only SQL, which includes parsing, execution, and the optimization of SQL plans.

  3. Focuses on SQLs (including DML and DDL) that change the state of the database: how they get implemented and how to deal with the interaction of them and read-only statements.

Other courses in this series

This course only focuses on the SQL layer of a distributed database system. If you are also interested in KV layer, see TinyKV.

Deploy

Once you finish the project. You can deploy the binary and use MySQL client to connect the server.

Build

make

Run & Play

Use ./bin/tidb-server to deploy the server and use mysql -h127.0.0.1 -P4000 -uroot to connect the server.

Also you can deploy the cluster together with the tinykv project.

Use make command in tinykv project to build binary tinyscheduler-server, tinykv-server.

Then put the binaries into a single dir and run the following commands:

mkdir -p data
./tinyscheduler-server
./tinykv-server -path=data
./tidb-server --store=tikv --path="127.0.0.1:2379"

Contributing

Contributions are welcomed and greatly appreciated. See CONTRIBUTING.md for details on submitting patches and the contribution workflow.

License

TinySQL is under the Apache 2.0 license. See the LICENSE file for details.

Owner
jaegerwang
email: [email protected] wechat: 13969003119
jaegerwang
Similar Resources

A combination of work from docs and a udemy course

Learning Go Some scrath work while learning go Motivation I think I need a bit of a break from dynamically typed scripting langauges. I've enjoyed pla

Nov 25, 2021

Exercise project written in Go that I did on my own during the course "gRPC [Golang] Master Class: Build Modern API & Microservices" taught by Stephane Maarek on Udemy

calculator Exercise project written in Go that I did on my own during the course "gRPC [Golang] Master Class: Build Modern API & Microservices" taught

Nov 9, 2022

Walkthrough of Course Project

CourseProj1660Final Walkthrough of How I Complete Project Option 1 for 1660 Build Main App I built the main application by altering the example applic

Nov 29, 2021

Learn the Go programming language (Golang) in this step-by-step tutorial course for beginners

Learn the Go programming language (Golang) in this step-by-step tutorial course for beginners. Go is an open source programming language designed at Google that makes it easy to build simple, reliable, and efficient software.

Dec 16, 2021

Go: The Complete Developer's Guide (Golang) Udemy Course by Stephen Grider

Go-The-Complete-Developers-Guide Go Command line tools 1. go build - compiles a bunch of go source code files go build

Dec 29, 2021

Ssba - Sandbox for exercises from Software Systems: Behind the Abstractions course

Software Systems: Behind the Abstractions This is my messy exercise sandbox for the Bradfield course Software Systems: Behind the Abstractions. The go

Aug 23, 2022

Rps-game-in-go - Learn Go for Beginners Crash Course (Golang)

rps-game-in-go This rock-paper-scissors game was based on the Udemy course "Lear

Mar 20, 2022

A snapshot of the assets for the Learn Go course on FreeCodeCamp's youtube

Assets for "Learn Go" on FreeCodeCamp This is a snapshot of the code samples for the "Learn Go" course on Boot.dev at the time the video for FreeCodeC

May 12, 2023

💯 Materials to help you rock your next coding interview

Tech Interview Handbook Credits: Illustration by @leftaligned Read on the website Black Lives Matter. Support the Equal Justice Initiative What is thi

Jan 4, 2023
7 days golang programs from scratch (web framework Gee, distributed cache GeeCache, object relational mapping ORM framework GeeORM, rpc framework GeeRPC etc) 7天用Go动手写/从零实现系列

7 days golang programs from scratch README 中文版本 7天用Go从零实现系列 7天能写什么呢?类似 gin 的 web 框架?类似 groupcache 的分布式缓存?或者一个简单的 Python 解释器?希望这个仓库能给你答案

Jan 5, 2023
A course to build distributed key-value service based on TiKV model
A course to build distributed key-value service based on TiKV model

The TinyKV Course This is a series of projects on a key-value storage system built with the Raft consensus algorithm

Jan 7, 2023
Labs from MIT's graduate-level Distributed Systems course

Labs from MIT's graduate-level Distributed Systems course Course website here Lab 1: MapReduce Lab 2: Raft Consensus Algorithm Lab 2A: Raft Leader Ele

Jun 20, 2022
This slide deck and supporting material is part of the Introduction to Go training course by Dave Cheney

This slide deck and supporting material is part of the Introduction to Go training course by Dave Cheney.

Nov 14, 2022
Crash Course about the programming language Go / Golang.
Crash Course about the programming language Go / Golang.

Crash Course about the programming language Go / Golang. In this course I have covered some important concepts and topics in programming.

Oct 10, 2022
This is from the udemy course: Go: The Complete Developer's Guide (Golang)

Go Udemy course - "Go: The Complete Developer's Guide (Golang)" How to run the file: go run hello-world.go go run <filename>.go GO CLI commands: go ru

Oct 22, 2021
Implementation diploma work for YANDEX course "GO Musthave"

go-musthave-diploma-tpl Шаблон репозитория для индивидуального дипломного проекта курса "Самостоятельный Go-разработчик" Начало работы Склонируйте реп

Apr 12, 2022
This is the repository for the LinkedIn Learning course Learning Go.
This is the repository for the LinkedIn Learning course Learning Go.

Learning Go This is the repository for the LinkedIn Learning course Learning Go. The full course is available from LinkedIn Learning. What is Go? Go i

Nov 2, 2021
Repo for the final proyect in the internal golang course in nearshore

golang_course Repo for the final proyect in the internal golang course in nearshore Basicamente, insert y lee el uuid insertado en una tabla de AWS Am

Nov 11, 2021
A Udemy course on how to create an industry standard REST API

go-rest-industry-standard This repository is for a Udemy course on how to create an industry standard REST API. It applies the MVC pattern, routing, a

Nov 23, 2021