1. TiDB Development Guide
  2. Get Started
    1. Install Golang
    2. Get the code, build and run
    3. Setup an IDE
    4. Write and run unit tests
    5. Debug and profile
    6. Commit code and submit a pull request
  3. Contribute to TiDB
    1. Community Guideline
    2. Report an Issue
    3. Issue Triage
    4. Contribute Code
    5. Cherry-pick a Pull Request
    6. Review a Pull Request
    7. Make a Proposal
    8. Code Style and Quality Guide
    9. Write Document
    10. Release Notes Language Style Guide
    11. Committer Guide
    12. Miscellaneous Topics
  4. Understand TiDB
    1. The Lifecycle of a Statement
      1. DDL
      2. DML
      3. DQL
    2. Parser
    3. Planner
      1. Table Statistics
      2. Rule-based Optimization
      3. Cost-based Optimization
      4. Plan Cache
      5. SQL Plan Management
    4. Execution
      1. Parallel Execution Framework
      2. Implementation of Vectorized Execution
      3. Memory Management Mechanism
      4. Implementation of Typical Operators
    5. Transaction
      1. Transaction on TiKV
      2. Optimistic Transaction
      3. Lock Resolver
      4. Pessimistic Transaction
      5. Async Commit
      6. 1PC
      7. MVCC garbage collection
    6. Session
    7. Privilege
    8. Plugin
    9. System tables
      1. information_schema
        1. slow_query
  5. Project Management
    1. Releases Train Model
    2. TiDB Versioning
  6. Extending TiDB
    1. Add a function