- 博客(17)
- 收藏
- 关注
原创 海山数据库(He3DB)源码详解:海山MySQL redo日志(1)
redo日志即重做日志,记录了事务对数据库做了哪些修改。当发生数据库服务器宕机、或者脏页未写入磁盘,可以通过redo日志恢复。
2024-10-21 16:21:30
2164
原创 海山数据库(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)源码详解: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)源码详解: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)技术分享:海山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关注的人
RSS订阅