自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 海山数据库(He3DB)源码详解:海山MySQL redo日志(1)

redo日志即重做日志,记录了事务对数据库做了哪些修改。当发生数据库服务器宕机、或者脏页未写入磁盘,可以通过redo日志恢复。

2024-10-21 16:21:30 2164

原创 海山数据库(He3DB)源码详解:主备复制stop过程

周雨慧 中移(苏州)软件技术有限公司 数据库内核开发工程师。

2024-10-21 16:20:36 895

原创 海山数据库(He3DB)源码详解:主备复制start过程

在数据库主备复制(如PostgreSQL的流复制等场景)中,基础备份是建立主备数据库一致性的初始备份。它是一个数据库在某个时间点的完整副本,包含了数据库的数据文件、目录结构等所有用于恢复数据库到该时间点状态的必要信息。周雨慧 中移(苏州)软件技术有限公司 数据库内核开发工程师。

2024-10-21 16:19:42 1058

原创 海山数据库(He3DB)源码详解:子事务的定义和启动

子事务的创建过程分为两步,分别为通过DefineSavepoint函数调用PushTransaction构建一个子事务节点,并在CommitTransactionCommand函数中调用StartSubTransaction函数启动一个新的子节点事务在终端以事务块方式执行SQL命令,在事务块状态为TBLOCK_INPROGRESS或TBLOCK_SUBINPROGRESS时,终端执行SAVEPOINT语句,数据库底层会调用DefineSavepoint函数,创建子事务并通过链栈保存父节点。

2024-10-18 17:34:46 783

原创 海山数据库(He3DB)源码详解:子事务的Push和Pop函数

李超,移动云数据库工程师,负责云原生数据库He3DB的研发。

2024-10-18 17:28:55 865

原创 海山数据库(He3DB)源码详解:子事务清理函数

李超,移动云数据库工程师,负责云原生数据库He3DB的研发。

2024-10-18 17:27:59 809

原创 海山数据库(He3DB)源码详解:He3DB-CLOG日志管理器函数之set_status_by_pages

函数名作用根据给定的事务标识符数组(subxids),按照这些事务标识符对应的页面信息来设置页面状态设置页面状态用于记录函数开始用于记录函数结束。

2024-10-18 17:26:25 663

原创 海山数据库(He3D)+AI(六):一种针对个性化需求的在线云数据库混合调优系统

# 0 前言使用机器学习的方法对云数据库进行参数调优具有较大的潜力,但是面对个性化的需求,预训练模型会出现无法匹配的问题,若使用在线学习的方法,则可能导致冷启动问题,导致较长的训练时间和性能波动。针对这些不足,本文带来SIGMOD的论文:HUNTER: An Online Cloud Database Hybrid Tuning System for Personalized Requirements,介绍一种针对个性需求在线云数据库的调优方法。

2024-10-18 17:24:43 608

原创 海山数据库(He3DB)技术分享:计划器与执行器

He3DB是一个功能强大的开源关系型数据库管理系统,其查询处理过程可以分为几个主要阶段:解析、重写、规划(计划生成)、优化和执行。本文档将重点讨论计划器和执行器的设计,包括相关代码和结构体分析。

2024-10-14 14:46:51 1045

原创 海山数据库(He3DB)源码详解:海山MySQL 事务隔离级别和MVCC

Mysql - 事务隔离级别和MVCC。

2024-10-14 14:45:56 2018

原创 海山数据库(He3DB)源码详解:He3DB-CLOG日志管理器函数之TransactionIdSetTreeStatus

片转存中…(img-FsIK2ebt-1728468520413)]涉及到的宏函数与一致,不做赘述这个函数的主要作用是记录事务及其子事务树在提交日志中的最终状态,并且在该函数的调用栈关系中,和是第一层函数调用,其核心讲解内容将在后续进行。

2024-10-14 14:45:02 813

原创 海山数据库(He3DB)源码详解:He3DB-CLOG日志管理器函数之CLOGShmemInit、ZeroCLOGPage

函数名作用CLOG日式管理器的初始化,用于在共享内存中初始化CLOG缓冲池将CLOG页面初始化或者重新初始化为零用于创建和初始化共享内存以及信号量用于初始化或连接到共享内存中的一个简单最近最少使用(LRU)缓存用于计算CLOG缓存量buffers用于对页面的前置关系函数进行单元测试函数用于判断一个CLOG页面编号在截断操作中是否 “更旧”用于记录函数开始用于记录函数结束。

2024-10-14 14:44:06 867

原创 海山数据库(He3DB)源码解读:查询规划之预处理

下图大概的刻画了查询规划模块里主要的函数调用关系查询规划的最终目的是得到可被执行器执行的最优计划,整个过程可分为预处理生成路径和生成计划三个阶段。预处理阶段是对查询树(Query结构体)的进一步改造,这种改造可通过SQL语句体现。在此过程中,最重要的是提升子链接和提升子查询。生成路径阶段,接收到改造后的查询树后,采用动态规划算法或遗传算法,生成最优连接路径和候选的路径链表。生成计划。

2024-10-14 14:43:14 1023

原创 海山数据库(He3DB)源码解读:CREATE EXTENSION原理浅析

张杰,移动云数据库工程师,负责云原生数据库He3DB的研发。

2024-10-14 14:42:18 889

原创 海山数据库(He3DB)技术分享:海山MySQL备份redo被覆盖问题分析

根据上述表格,大概可以总结出以下结论:redo写入速率越快,备份报错时间越短,我们通过获取备份时间内的redo写入大小除以备份报错时长得到redo写入速率,再根据redolog的总大小除以备份报错时长得到redo拷贝速率,两者相减得到偏差速率(即每秒未完成拷贝的redo大小)。通过计算redo写入速率和偏差速率的比率,得到1个相对平均的比率值约等于0.56,即redo写入速率 * 0.56 ≈ 偏差速率。

2024-10-10 23:13:53 1119 1

原创 海山数据库(He3DB)技术分享:海山MySQL 5.7版本GTID丢失问题分析及解决方案

本文将从源码层面分析MySQL 5.7因异常重启导致整个binlong中GTID丢失问题,并逐步梳理出MySQL 5.7中GTID持久化和初始化的过程。本问题的复现步骤、产生的原因、修复方案均以BUG和patch的方式反馈给了社区,percona社区已经在其5.7版本中merge了我们贡献的patch代码。

2024-10-10 23:12:56 851

原创 海山数据库(He3DB)性能优化方案解析

前端优化是一个永恒的话题,每个前端开发者都希望自己的页面能够快速加载,给用户良好的体验。但往往事与愿违。因此,本文从编码优化、构建优化、部署优化三方面入手进行web页面性能优化。

2024-10-10 23:11:59 1764

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除