LoopJump's Blog

The Volcano Optimizer Generator

SQL
《The Volcano Optimizer Generator : Extensibility and Efficient Search》1993 论文介绍了在EXODUS之后的一个新的优化器生成器Volcano。 一个好的optimizer generator要满足如下条件: 既能用到 ...
Read more

Snowflake Elastic Data Warehouse

Database
《The Snowflake Elastic Data Warehouse》 SIGMOD 16’ Snowflake具备如下的特点: 纯粹的SaaS体验:用户将数据放到云上,然后可以通过snowflake对他们的数据进行查询。 关系型:支持SQL和ACID 办结构化:内置函数和SQL扩展 ...
Read more

How to Architect a Query Compiler Revisited

SQL
《How to Architect a Query Compiler, Revisited》 SIGMOD’16 数据库执行一个查询的流程包括前端语法解析、优化器以及后端解释执行。语言编译器的流程与之类似,除了最后一步会编译成机器码执行,DBMS一般还是解析执行的。 在相当长一段时间内,硬盘 ...
Read more

浅析性能优化

Database
性能分析和优化是一个要求比较全面的工作,通常既要了解所分析的目标系统本身的设计和实现,也要对操作系统等底层基础设施有一定了解,同时需要掌握一些方法论以指导性能分析和优化工作。 本文尝试根据个人这几年做过的几次数据库性能优化的一点经验做一些总结。如前所说,性能分析和优化覆盖面比较广,这里只能抛 ...
Read more

Databricks Lakehouse

Database
《Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics》 CIDR21’ 整片文章讲的比较宽泛。 Introduction第一代数仓:结构化数据,用于决 ...
Read more

InnoDB源码解析-基础数据结构

MySQL
互斥锁 ib_mutex_ttypedef FutexMutex ib_mutex_t; UT_MUTEX_TYPE(TTASFutexMutex, GenericPolicy, FutexMutex); 这个宏定义展开是 typedef PolicyMutex<TTASFutexMu ...
Read more

InnoDB源码解析-存储管理层次

MySQL
InnoDB的存储层次总的数据粒度:Row - Page - Extent - Segment - Tablespace。 !http://loopjump.com/wp-content/uploads/2020/06/image-20200623151536735-1024x756.png ...
Read more

InnoDB源码解析-事务系统

MySQL
InnoDB事务系统负责InnoDB层事务管理,快照管理,MVCC等。 事务对象InnoDB层事务对象为 struct trx_t 类型。 12345678910111213141516// 部分字段struct trx_t{ trx_id_t id; // 事务开启序 ...
Read more

InnoDB源码解析-日志系统

MySQL
MySQL 5.7中 Log Sys锁冲突比较大,MySQL 8.0对InnoDB Log Sys进行了重构。 我们先描述下5.7的 Log Sys看看锁冲突,然后再介绍8.0的方案以及部分代码实现细节。 mtrmtr 表示 mini-transaction,表示操作的一个最小原子单元,比数 ...
Read more

Access Path Selection in a RDBMS

SQL
《Access Path Selection in a Relational Database Management System》 1979 SQL语句处理的四个阶段:Parsing, Optimization, Code Generation, Execution。 query bloc ...
Read more
Prev Next