TiDB Development Guide
1.
Get Started
1.1.
Install Golang
1.2.
Get the code, build and run
1.3.
Setup an IDE
1.4.
Write and run unit tests
1.5.
Debug and profile
1.6.
Commit code and submit a pull request
2.
Contribute to TiDB
2.1.
Community Guideline
2.2.
Report an Issue
2.3.
Issue Triage
2.4.
Contribute Code
2.5.
Cherry-pick a Pull Request
2.6.
Review a Pull Request
2.7.
Make a Proposal
2.8.
Code Style and Quality Guide
2.9.
Write Document
2.10.
Release Notes Language Style Guide
2.11.
Committer Guide
2.12.
Miscellaneous Topics
3.
Understand TiDB
3.1.
The Lifecycle of a Statement
3.1.1.
DDL
3.1.2.
DML
3.1.3.
DQL
3.2.
Parser
3.3.
Planner
3.3.1.
Table Statistics
3.3.2.
Rule-based Optimization
3.3.3.
Cost-based Optimization
3.3.4.
Plan Cache
3.3.5.
SQL Plan Management
3.4.
Execution
3.4.1.
Parallel Execution Framework
3.4.2.
Implementation of Vectorized Execution
3.4.3.
Memory Management Mechanism
3.4.4.
Implementation of Typical Operators
3.5.
Transaction
3.5.1.
Transaction on TiKV
3.5.2.
Optimistic Transaction
3.5.3.
Lock Resolver
3.5.4.
Pessimistic Transaction
3.5.5.
Async Commit
3.5.6.
1PC
3.5.7.
MVCC garbage collection
3.6.
Session
3.7.
Privilege
3.8.
Plugin
4.
Project Management
4.1.
Releases Train Model
4.2.
TiDB Versioning
5.
Extending TiDB
5.1.
Add a function
Light
Rust
Coal
Navy
Ayu
TiDB Development Guide
Extending TiDB