Reading, thinking and coding about MySQL,InnoDB and MGR

Overview

MySQL 8.0.27 Review by adzfolc

Notifications

  • In this doc, I will make the rules of my code review and period summary for later review.
  • This chapter may cotain comprehensive summary of MySQL/Innodb/MGR.
  • Review format
    1. My Code review would be written in source code in format of annonation.
    2. Some key annonations would be begined with __adzfolc__.
    3. Some questions,which make me confused, would be denoted with __adzfolc__ Q:
    4. Some optimizaton would be denoted with __adzfolc__ To Do: refractor.

Keypoint

  1. Server
    1. Thread model
    2. MySQL Packet Decode
  2. SQL
    1. Parser
    2. Optimizer
      1. SQL Plan
      2. SQL Optimizer
    3. Execution
  3. InnoDB
    1. Transaction
      1. How ACID is implmented?
      2. GTID
      3. Locks
      4. Logs
        1. Undolog
        2. Redolog
    2. Binlog
  4. Replication
    1. MGR
      1. Basic Paxos and Mutli Paxos
      2. Multi Paxos and Mencius
      3. How Mencius is implemented in MGR
  5. Storage
    1. B+ Tree

Notes

Expandsion

  • Based on tourtial, I implement a storage engine called Casablanca.Source code path is storage/casablanca.

  • 基于教程,我实现了名为 Casablanca 的存储引擎.代码路径在 storage/casablanca.

  • Ability

    • CRUD
    • Index
  • To Do:

    • 优化索引结构
  • Casablanca is still under construction.

Reading

  1. MySQL核心内幕
    1. Chp 7 查询解析与优化器
    2. Chp 8 安全管理系统
    3. P230
  2. MySQL技术内幕-InnoDB存储引擎 P330
  3. MySQL 8.0 Reference Manual P3033
  4. MySQL 运维内参 P160 InnoDB 记录格式

Recommend Materials

Book Comment
MySQL 8.0 Reference Manual MySQL使用手册
MySQL Internals Manual MySQL内核详设
PerconaServer-for-MySQL-8.0.23-14 Percona详设,含 Myrocks/Toukudb
内核月报 YYDS
网易杭研InnoDB分享 讲的很好,内容侧重 MGR
事务处理-概念与技术 好书,有讲 trx system 的设计,有很多设计的框架雏形
MySQL核心内幕 正在入门,手撕引擎实现
MySQL技术内幕-InnoDB存储引擎 重原理,需要自己结合参数看代码
MySQL运维内参 讲实现的,有 MGR ,书结合最新代码能凑合看
MySQL内核-INNODB存储引擎 好书,代码古早版本,宏观能对上
高性能MySQL 听说过没看过
Introducing InnoDB Cluster 没听说过也没看过
Expert MySQL 听说过没看过
深入理解MySQL核心技术/Understanding MySQL Internals 看过部分,古早版本的代码
MySQL是怎样运行的 原理+口水书,写的不严肃.讲 Redo Undo Buffer 的模块很详细,结合代码看看
MySQL Concurrency 没听说过也没看过
MySQL Group Replication_ The Magic Explained v1/v2 Oracle Slides,应该靠谱,没看
数据库查询优化器的艺术 SQL 可看可不看...
Owner
Consensus, Storage and Transaction
null
MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.

Copyright (c) 2000, 2021, Oracle and/or its affiliates. This is a release of MySQL, an SQL database server. License information can be found in the

MySQL 8k Jul 4, 2022
A friendly and lightweight C++ database library for MySQL, PostgreSQL, SQLite and ODBC.

QTL QTL is a C ++ library for accessing SQL databases and currently supports MySQL, SQLite, PostgreSQL and ODBC. QTL is a lightweight library that con

null 155 Jun 26, 2022
Config and tools for config of tasmota devices from mysql database

tasmota-sql Tools for management of tasmota devices based on mysql. The tasconfig command can load config from tasmota and store in sql, or load from

RevK 3 Jan 8, 2022
Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.

Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.

GitHub 248 Jun 11, 2022
Sistema de gestão corporativa em interface de linha de comando, para banco de dados MySQL/MariaDB

SimpleERP Sistema de gestão corporativa em interface de linha de comando, para banco de dados MySQL/MariaDB Autores Miguel Nischor - Project Lead Como

Code Brasil 4 Jun 14, 2021
GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

null 229 Jun 30, 2022
Flashback mysql data to any point

一、简介 MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具。该工具通过解析v4版本的binlog,完成回滚操作。相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易。 该工具已经在美团点评内部使用 二、详细说明 安装 使用 测试用例 三、限制 binlog格式必须为r

美团 1k Jun 23, 2022
GridDB is a next-generation open source database that makes time series IoT and big data fast,and easy.

Overview GridDB is Database for IoT with both NoSQL interface and SQL Interface. Please refer to GridDB Features Reference for functionality. This rep

GridDB 1.8k Jun 27, 2022
ObjectBox C and C++: super-fast database for objects and structs

ObjectBox Embedded Database for C and C++ ObjectBox is a superfast C and C++ database for embedded devices (mobile and IoT), desktop and server apps.

ObjectBox 132 Jun 26, 2022
dqlite is a C library that implements an embeddable and replicated SQL database engine with high-availability and automatic failover

dqlite dqlite is a C library that implements an embeddable and replicated SQL database engine with high-availability and automatic failover. The acron

Canonical 3k Jun 27, 2022
ESE is an embedded / ISAM-based database engine, that provides rudimentary table and indexed access.

Extensible-Storage-Engine A Non-SQL Database Engine The Extensible Storage Engine (ESE) is one of those rare codebases having proven to have a more th

Microsoft 780 Jun 13, 2022
Modern, asynchronous, and wicked fast C++11 client for Redis

redox Modern, asynchronous, and wicked fast C++11 client for Redis [] (https://travis-ci.org/hmartiro/redox) Redox is a C++ interface to the Redis key

Hayk Martiros 374 Jun 14, 2022
Nebula Graph is a distributed, fast open-source graph database featuring horizontal scalability and high availability

Nebula Graph is an open-source graph database capable of hosting super large scale graphs with dozens of billions of vertices (nodes) and trillions of edges, with milliseconds of latency.

vesoft inc. 807 Jun 30, 2022
HybridSE (Hybrid SQL Engine) is an LLVM-based, hybrid-execution and high-performance SQL engine

HybridSE (Hybrid SQL Engine) is an LLVM-based, hybrid-execution and high-performance SQL engine. It can provide fast and consistent execution on heterogeneous SQL data systems, e.g., OLAD database, HTAP system, SparkSQL, and Flink Stream SQL.

4Paradigm 45 Sep 12, 2021
OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.

What is OceanBase database OceanBase Database is a native distributed relational database. It is developed entirely by Alibaba and Ant Group. OceanBas

OceanBase 4.4k Jun 27, 2022
A PostgreSQL extension providing an async networking interface accessible via SQL using a background worker and curl.

pg_net is a PostgreSQL extension exposing a SQL interface for async networking with a focus on scalability and UX.

Supabase 41 Jun 19, 2022
A framework to monitor and improve the performance of PostgreSQL using Machine Learning methods.

pg_plan_inspector pg_plan_inspector is being developed as a framework to monitor and improve the performance of PostgreSQL using Machine Learning meth

suzuki hironobu 168 Jul 1, 2022
StarRocks is a next-gen sub-second MPP database for full analysis senarios, including multi-dimensional analytics, real-time analytics and ad-hoc query, formerly known as DorisDB.

StarRocks is a next-gen sub-second MPP database for full analysis senarios, including multi-dimensional analytics, real-time analytics and ad-hoc query, formerly known as DorisDB.

StarRocks 2.7k Jun 26, 2022
Velox is a new C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems.

Velox is a C++ database acceleration library which provides reusable, extensible, and high-performance data processing components

Facebook Incubator 893 Jun 27, 2022