Giter Club home page Giter Club logo

database-kernel-develop's Introduction

📔 Database Kernel develop RoadMap

Author is a database amateur, so the content is not authoritative, welcome to point out my error.

Since the database course is recommended, only good articles, papers or blogs are listed starting from part 3.

List of Knowledge

1. Description

This repo will not include knowledge about basic programming language. it mainly focus on direction of database kernal development.

The tutorial will include content:

  • Courses
  • Blogs
  • Papers
  • Activities
  • Talks

Ok, The repo include two language content:

  • English Content
  • Chinese Content.

If you have any good materials, welcome to submit a pull request for this repo.

Finally, I would like to thank the professor who provided the Course resource, papper resource Etc. Also thanks the blogger who provided the study notes. Thanks to all content resource providers.

2. Recommended Basic Course and Books

I will not update course notes and labs.

Pre-Skill

You only need to know a programming language.

2.1 Computer Organization and Design

2.1.1 Courses

University ID Name Time Comment
CMU 15-213/14-513/15-513 Intro to Computer Systems(ICS) Fall 2015 CS:APP3e
UC Berkeley CS61C Great Ideas in Computer Architecture (Machine Structures) Spring 2017 N/A
UC Berkeley CS 152/252A Computer Architecture and Engineering Spring 2022 N/A
N/A N/A Crash Course Computer Science bilibili地址

2.1.2 Books

  • Reference Course Resources

2.2 Computer Operating System

2.2.1 Courses

University ID Name Time Comment
Stanford CS110 Principles of Computer Systems Winter 2022
MIT 6.828 Operating System Engineering Fall 2018
UC Berkeley CS162 Operating Systems and System Programming Fall 2020
MIT 6.033 http://web.mit.edu/6.033/www/index.shtml N/A covers four units of technical content: operating systems, networking, distributed systems, and security

2.2.2 Books

  • Reference Course Resources

2.3 Computer Network

2.3.1 Courses

University ID Name Time Comment
Stanford CS144 Introduction to Computer Networking Fall 2021
CMU CS 15-744 Computer Networks Spring 2018
中科大USTC N/A 计算机网络 N/A undergraduate stage
中科大USTC N/A 高级计算机网络 N/A postgraduate stage

2.3.2 Books

  • Reference Course Resources

2.4 Data Structure and Algorithmn

2.4.1 Courses

University ID Name Time Comment
UC Berkeley CS 61B Data Structures Fall 2020
CMU CS 15-122 Principles of Imperative Computation Spring 2023 Past Courses Page 404
CMU CS 15-121 Introduction Data Structures Spring 2018

2.4.2 Books

  • Reference Course Resources

2.5 Algorithms Design and Analysis

2.5.1 Courses

University ID Name Time Comment
UC Berkeley UC Berkeley Efficient Algorithms and Intractable Problems
MIT 6.006 Introduction to Algorithms Spring 2020 Introduction to Algorithmns
CMU CS 15-451/651 Algorithm Design and Analysis Fall 2021
CMU CS 15-850 Advanced Algorithms Fall 2020

2.5.2 Books

  • Reference Course Resources

2.6 Database

2.6.1 Course

University ID Name Time Comment
CMU CS 15-445/645 Database Systems Fall 2022 Instructor: Andy Pavlo
UC Berkeley CS 186 Introduction to Database Systems Spring 2022
Pennsylvania CMPSC 431W Database Management Systems Fall 2015
Stanford CS346 Database System Implementation Spring 2015
uwaterloo CS 448/648 Database Systems Implementation Winter 2009
CMU CS 15-721 Advanced Database Systems Spring 2020 Instructor: Andy Pavlo
CMU CS 15-799 Special Topics: Self-Driving Database Management Systems Spring 2022 Instructor: Andy Pavlo
uwaterloo CS 856 Distributed data management fundamentals (architectures, data placement, query optimization)
Distributed transaction processing, concurrency control, recovery, interoperability
Fall 2002 Only need these two slides, nothing else
N/A N/A Let's Build a Simple Database: Writing a sqlite clone from scratch in C Thanks to cstack
Stanford CS 345 Topics in Database Management Systems Winter 2014 Paper Readings topic, similar to CMU CS15-721

2.6.2 Books

2.6.3 Papers

2.7 Distributed System

This Section is for distributed database.

2.7.1 Courses

University ID Name Time Comment
MIT 6.824 MIT Distributed Systems Spring 2021 Golang
N/A N/A Distributed Systems
Columbia University COMS 4113 Distributed Systems Fundamentals
CMU CS 15-440 CMU Distributed Systems
Princeton COS 418 Princeton Distributed Systems Fall 2019 Golang
Columbia University Advanced Distributed Systems Research Papers
MIT 6.852 MIT Distributed Algorithms
ETHZ N/A Principles of Distributed Computing (lecture collection)
Stanford CS244b Distributed Systems Spring 2020
Washington CSE 490H Distributed Systems Autumn 2010

2.7.2 Books

2.7.3 Papers

2.7.4 Blogs

3. SQL & Relational Algebra

4. DDL & DML

5. Relational Model

6. Storage management

CS 15-445 课程 Lecture03、Lecture04

6.1 Buffer Pool

6.2 Index

6.3 B+Tree

6.4 B-Tree

6.5 Hash table

6.6 LSM-Tree

6.7 Bw-Tree

6.8 Storage engine

7. Query Processing

8. SQL Parser

8.1 Syntax Check

8.2 Semantic Check

8.3 Shared Pool Check

8.4 Actions

9. SQL Executor

9. SQL Optimization

9.1 SQL Query Optimization

9.2 Indexes Optimization

9.3 Table Optimization

9.4 Buffer Cache Optimization

9.5 Storage Optimization

9.7 table Structure Optimization

9.7.1 data reduction

9.7.2 data partition

9.8 Optimizer

Reference : https://zhuanlan.zhihu.com/p/363997416 , thanks henry liang

9.9 SQL调优博客List

10. Transaction management

Lock manager

11. Network

12. Serialization

13. Concurrency Control

14. Crash Recovery management

15. NoSQL

16. NewSQL

17. Distributed & Paralleled

15. OLAP、OLTP、HTAP

15.1 OLAP

15.2 OLTP

15.3 HTAP

15.4 HSAP

16. Graph Database

16.1 Courses

16.2 Books

16.3 Papers

16.4 Blogs

16. Project Source Code Analysis

Just collect, some databases have not been read yet. Thanks to all Authors.

Database DataBase Type Blog Github
SQLite a small relational database management system SQLite源码分析 https://github.com/sqlite/sqlite
LevelDB fast key-value storage library LevelDB 源码剖析 https://github.com/google/leveldb
MySQL
PostGreSQL PostGreSQL源码解读系列
Redis in-memory database that persists on disk. 1. 如何阅读 Redis 源码?
2. redis源码解析
https://github.com/redis/redis
MongoDB Cloud-Native Document Database MongoDB 内核源码分析 https://github.com/mongodb/mongo
TiDB cloud-native, distributed, MySQL-Compatible database TiDB源码阅读分析 https://github.com/pingcap/tidb
TiKV distributed key-value database TiKV源码解析系列
PolarDB-X cloud native distributed SQL Database PolarDB-X 源码解读 https://github.com/polardb/polardbx-sql
OceanBase distributed relational database https://github.com/oceanbase/oceanbase
openGauss open source relational database management system openGauss数据库源码解析 https://github.com/opengauss-mirror
StoneDB A Real-time HTAP Database StoneDB 源码解读系列
RocksDB A Persistent Key-Value Store for Flash and RAM Storage 官方wiki文档 https://github.com/facebook/rocksdb
ToplingDB RocksDB的增强分支 N/A https://github.com/topling/toplingdb
Greenplum open-source massively parallel data platform for analytics, machine learning and AI. Greenplum 分布式数据库内核揭秘(上篇)
Greenplum 分布式数据库内核揭秘(下篇)
https://github.com/greenplum-db/gpdb
YugabyteDB high-performance, cloud-native, distributed SQL database that aims to support all PostgreSQL features. 待更新 https://github.com/yugabyte/yugabyte-db
Neo4j Graph Database 待更新 https://github.com/neo4j/neo4j
JanusGraph open-source, distributed graph database 待更新 https://github.com/JanusGraph/janusgraph
OpenMLDB an open-source machine learning database 待更新 https://github.com/4paradigm/OpenMLDB

taobao MySQL 数据库内核月报 :http://mysql.taobao.org/monthly/

17. Mini-Project Labs

18. AI4DB and DB4AI (frontier tech)

Database Retrospective

database-kernel-develop's People

Contributors

solerho avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.