文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(四):SQL的一生

前文中,我们给出了组成polardbx-sql的三个部分,并从目录入手介绍了重要模块/目录,最后不加解释的列出了一些关键接口作为调试代码的切入点。本文将从SQL执行角度出发,介绍polardbx-sql(CN)代码中与SQL解析执行相关的关键代码。 一、概述“SQL的一生”特指从客户端创建连接发送SQL开始,到客户端收到返回结果结束,期间CN代码中发生的故事。与人的一生类似,从不同角度观测“SQ....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(四):SQL的一生
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(五):DML之Insert流程.

在阅读本文之前,强烈建议先阅读《PolarDB-X源码解读系列:SQL的一生》,能够了解一条SQL的执行流程,也能知道polardbx-sql(CN)的各个组件,然后再阅读本文,了解Insert的具体实现过程,加深各个组件的理解。Insert类的SQL语句的流程可初略分为:解析、校验、优化器、执行器、物理执行(polardbx-engine执行)。本文将以一条简单的Insert语句通过调试的方式....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(五):DML之Insert流程.
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(六):分布式死锁检测

一、死锁检测任务的生命周期 本文将主要解读PolarDB-X中分布式死锁检测功能的源码。阅读前建议先了解我们分布式死锁检测原理的相关文章:  PolarDB-X分布式MDL死锁检测。死锁检测功能属于事务模块的功能,死锁检测任务则挂载在事务管理器TransactionManager中。在TransactionManager初始化时(参考PolarDB-X CN启动流程,代码入口在Mat.....

文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(七):私有协议连接的一生(CN篇)

通过前文的介绍,大家基本了解了一条SQL在polardbx-sql中的解析和执行流程,由于polardbx-sql是无状态的计算节点,真正的数据还需要从存储节点传输到计算节点上,这部分工作则是由私有协议完成的。本文将从传输到数据节点的请求开始,到数据返回给计算节点结束,着眼于私有协议连接的完整生命周期,介绍私有协议的关键代码。 一、概述 为了充分发挥数据节点的本地计算能力,同时尽可能减少网络数据....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(七):私有协议连接的一生(CN篇)
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(八):GlobalBinlog的一生

本篇将对Binlog的产生,以及如何通过系统处理并最终生成Global Binlog的过程进行分析。  一、概述Global Binlog的一生是指从原始Binlog产生,到最终Global Binlog生成期间产生的故事,本文会详细介绍Binlog拉取,数据整形合并,以及最终生成Global Binlog期间经过的关键流程。Global Binlog涉及到Task和Dumper组件,....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(八):GlobalBinlog的一生
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(九):DDL的一生(上)

一、概述 一条SQL语句进入PolarDB-X的CN后,将经历协议层、优化器、执行器的完整处理流程。首先经过解析、鉴权、校验,被解析为关系代数树后,在优化器中经历RBO和CBO生成执行计划,最终在DN上执行完成。与DML不同的是,逻辑DDL语句还涉及对元数据的读写和物理DDL,直接影响系统状态一致性。 PolarDB-X的DDL实现的关键目标是DDL的“online”和“crash safe”,....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(九):DDL的一生(上)
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十):DDL的一生(下)

一、概述 在《DDL的一生(上)》中,我们以添加全局二级索引为例,从DDL开发者的视角介绍了如何在DDL引擎框架下实现一个逻辑DDL。在本篇,作者将从DDL引擎的视角出发,向读者介绍DDL引擎的架构、实现,以及DDL引擎与DDL Job的交互逻辑。  在阅读本文之前,建议读者先阅读: 《DDL的一生(上)》 《PolarDB-X DDL也要追求ACID?》 二、DDL引擎相关概念 1.....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十):DDL的一生(下)
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十一):事务的一生

一、概述 本文将主要解读PolarDB-X中事务部分的相关代码,着重解读事务的一生在计算节点(CN)中的关键代码:从开始、执行、到最后提交这一整个生命周期。  在阅读本文前,强烈推荐先阅读与PolarDB-X事务系统相关的文章:  PolarDB-X 强一致分布式事务原理。  PolarDB-X 分布式事务的实现(一)  PolarDB-X 分布式事务...

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十一):事务的一生
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十二):谈谈in常量查询的设计与优化

作者:越寒 一、介绍 如标题所示,这是一篇介绍in常量查询的源码解读文章,但又不限于in常量查询,因为其中涉及的很多设计与优化对于大多数查询都是普适的。一如往常一样,我们首先会过一遍整体的执行流程,梳理一个大致的框架。紧接着,同时也是更重要的,我们会通过一系列在真实场景中遇到的问题(说白了就是性能优化),来对各种细节处理进行增强。 温馨提醒:建议有条件有兴趣的同学可以对照着本篇文章边调试(我基本....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十二):谈谈in常量查询的设计与优化
文章 2023-05-23 来自:开发者社区

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十三):DML之INSERTIGNORE流程

作者:潜璟 在上一篇源码阅读中,我们介绍了INSERT的执行流程。而INSERT IGNORE与INSERT不同,需要对插入值判断是否有Unique Key的冲突,并忽略有冲突的插入值。因此本文将进一步介绍PolarDB-X中INSERT IGNORE的执行流程,其根据插入的表是否有GSI也有所变化。  一、下推执行 如果插入的表只有一张主表,没有GSI,那么只需要将INSERT IG....

开源分布式数据库PolarDB-X源码解读——PolarDB-X源码解读(十三):DML之INSERTIGNORE流程

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐