12 2024 档案
摘要:JVM 内存布局与 JNA 调用本地方法原理详解 JVM 内存布局详解 JVM 内存布局随着 JDK 版本不同而不同, 但是大致布局以及运行原理相同, 我们选择 JDK1.8 的内存布局解释. 下图是JDK 1.8 的内存布局的示意图: 程序计数器(PC) 这个是当前线程正在执行的字节码行号指示器,
阅读全文
摘要:CPP虚函数详解与实例 在 CMU_15445 的Project3 中大量使用了虚函数,抽象类的方法 主要在 Expression(表达式) 以及 Executor(Plan_Node的执行) 中, 在完成 Part1 的时候仅关注了功能的实现, 还没有完全搞清楚为什么要使用虚函数以及抽象类, 以及
阅读全文
摘要:CMU_15445_P3_Part1 这部分主要是实现一些基本的 Plan_Node 的 Executor, 我们可以首先通过一个列子来看, 就是 Projection Plan_Node 的例子. 我们使用一个简单的 EXPLAIN 的例子引入 PlanNode 的执行流程: -- 在控制台使用
阅读全文
摘要:BUSTUB中SQL语句的Plan Execution 导读 Project3 中主要讲述的是SQL语言的Query Executor过程, 实际步骤中包含Query Optimization的过程, 下图是一个 Query 在数据库中 Execute 的整体流程. 在 关系数据库 Query Ex
阅读全文
摘要:CMU_15445_P3_bustub_事务并发控制算法(MVCC) BUSTUB 数据库引擎采用多版本并发控制协议 multi-version concurrency control (MVOCC) 来实现事务的并发控制管理. 数据引擎的并发控制 从数据库引擎的角度应该如何看待以及处理事务呢? 事
阅读全文