摘要: MVCC Executors 在这个 Task 中, 我们需要实现在 MVCC 下的 Plan Executor. 在 MVCC 下, 由于数据库中的对象会存储多个物理版本, 因此所有涉及到数据库对象直接读取, 存储, 修改, 删除 的 Executor 都需要考虑到 tuple 的多版本物理存储问 阅读全文
posted @ 2025-03-03 16:57 虾野百鹤 阅读(0) 评论(0) 推荐(0) 编辑
摘要: CMU_15445_Project4_Task1-2 到这部分, BUSTUB 数据库引擎的整体面容开始显现出来了, 在文件 src/include/common/bustub_instance.h 中, 当我们想要实例化一个 BUSTUB 对象的时候, 可以看到它的组成部分有: // Curren 阅读全文
posted @ 2025-02-25 18:21 虾野百鹤 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 多版本并发控制协议 MVCC 这篇文章我们先从整体上介绍一下多版本并发控制协议, 后续我们会对多版本并发控制协议(MVCC) 的每个部分的具体实现进行分析, 主要解释在 BUSTUB 中是如何实现的. 上篇文章 我们介绍了在数据库的并发事务中会出现的常见的几种冲突, 以及在 文章 中介绍了一些事务的 阅读全文
posted @ 2025-02-21 17:11 虾野百鹤 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 关系型数据库常见并发冲突详解与总结 为什么会有冲突 为什么保证数据库的 AICD 特性, 通常数据库调度的时候希望事务的执行是一个串行调度, 但是实际中, 由于事务是并发执行的, 因此会出现各种冲突, 而事务的并发控制协议, 并发控制算法的目的则是处理并发事务中的冲突以实现并发冲突的可串行化. 并发 阅读全文
posted @ 2025-02-15 10:42 虾野百鹤 阅读(16) 评论(0) 推荐(0) 编辑
摘要: Sort + Limit Executors + Window Functions + Top-N Optimization 这里的实现比较简单, 就不赘述了, 后续补充一下这部分的优先队列的使用, 以及选择的方式 Window Functions 窗口函数的实现才是这部分的重点 窗口函数介绍 My 阅读全文
posted @ 2025-01-21 18:28 虾野百鹤 阅读(17) 评论(0) 推荐(0) 编辑
摘要: HashJoin Executor & Optimization HashJoin Executor 如果查询包含与两列之间单个或者多个等值条件的连接的连接, 则 DBMS 可以使用 HashJoinPlanNode (各个等式之间使用 AND 连接条件), 例如: 考虑以下示例查询: SELECT 阅读全文
posted @ 2025-01-11 16:09 虾野百鹤 阅读(15) 评论(0) 推荐(0) 编辑
摘要: Aggregation & Join Executors 实现 AggregationExecutor 的实现 AggregationExecutor 的实现需要关注 AggregationExecutor.h 和 AggregationPlanNode, 以理解其支持的 SQL 语句及其执行方式. 阅读全文
posted @ 2025-01-02 16:27 虾野百鹤 阅读(29) 评论(0) 推荐(0) 编辑
摘要: JVM 内存布局与 JNA 调用本地方法原理详解 JVM 内存布局详解 JVM 内存布局随着 JDK 版本不同而不同, 但是大致布局以及运行原理相同, 我们选择 JDK1.8 的内存布局解释. 下图是JDK 1.8 的内存布局的示意图: 程序计数器(PC) 这个是当前线程正在执行的字节码行号指示器, 阅读全文
posted @ 2024-12-27 11:23 虾野百鹤 阅读(68) 评论(0) 推荐(0) 编辑
摘要: CPP虚函数详解与实例 在 CMU_15445 的Project3 中大量使用了虚函数,抽象类的方法 主要在 Expression(表达式) 以及 Executor(Plan_Node的执行) 中, 在完成 Part1 的时候仅关注了功能的实现, 还没有完全搞清楚为什么要使用虚函数以及抽象类, 以及 阅读全文
posted @ 2024-12-21 11:35 虾野百鹤 阅读(70) 评论(0) 推荐(0) 编辑
摘要: CMU_15445_P3_Part1 这部分主要是实现一些基本的 Plan_Node 的 Executor, 我们可以首先通过一个列子来看, 就是 Projection Plan_Node 的例子. 我们使用一个简单的 EXPLAIN 的例子引入 PlanNode 的执行流程: -- 在控制台使用 阅读全文
posted @ 2024-12-16 15:53 虾野百鹤 阅读(29) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示