上一页 1 2 3 4 5 6 ··· 11 下一页
摘要: 事务 Abort tainted 状态存在什么问题 在此之前, 在 BUSTUB 中检测到写写冲突的时候, 会将事务的状态设置为 tained, 但是 tained 是一个临时保存的状态, tained 状态的事务不会释放已经获取的资源, 例如如果一个事务 txn_A 在修改一个 tuple1 的时 阅读全文
posted @ 2025-03-15 13:10 虾野百鹤 阅读(41) 评论(0) 推荐(1)
摘要: Primary Key Index BUSTUB 支持使用下面的方式创建主键索引 CREATE TABLE t1(v1 int PRIMARY KEY); CREATE TABLE t1(v1 int, v2 int, PRIMARY KEY(v1, v2)); 当创建一个表的时候如果确定了主键, 阅读全文
posted @ 2025-03-14 09:34 虾野百鹤 阅读(47) 评论(0) 推荐(1)
摘要: MVCC Executors 在这个 Task 中, 我们需要实现在 MVCC 下的 Plan Executor. 在 MVCC 下, 由于数据库中的对象会存储多个物理版本, 因此所有涉及到数据库对象直接读取, 存储, 修改, 删除 的 Executor 都需要考虑到 tuple 的多版本物理存储问 阅读全文
posted @ 2025-03-03 16:57 虾野百鹤 阅读(75) 评论(0) 推荐(1)
摘要: CMU_15445_Project4_Task1-2 到这部分, BUSTUB 数据库引擎的整体面容开始显现出来了, 在文件 src/include/common/bustub_instance.h 中, 当我们想要实例化一个 BUSTUB 对象的时候, 可以看到它的组成部分有: // Curren 阅读全文
posted @ 2025-02-25 18:21 虾野百鹤 阅读(84) 评论(0) 推荐(1)
摘要: 多版本并发控制协议 MVCC 这篇文章我们先从整体上介绍一下多版本并发控制协议, 后续我们会对多版本并发控制协议(MVCC) 的每个部分的具体实现进行分析, 主要解释在 BUSTUB 中是如何实现的. 上篇文章 我们介绍了在数据库的并发事务中会出现的常见的几种冲突, 以及在 文章 中介绍了一些事务的 阅读全文
posted @ 2025-02-21 17:11 虾野百鹤 阅读(242) 评论(0) 推荐(1)
摘要: 关系型数据库常见并发冲突详解与总结 为什么会有冲突 为什么保证数据库的 AICD 特性, 通常数据库调度的时候希望事务的执行是一个串行调度, 但是实际中, 由于事务是并发执行的, 因此会出现各种冲突, 而事务的并发控制协议, 并发控制算法的目的则是处理并发事务中的冲突以实现并发冲突的可串行化. 并发 阅读全文
posted @ 2025-02-15 10:42 虾野百鹤 阅读(224) 评论(0) 推荐(0)
摘要: Sort + Limit Executors + Window Functions + Top-N Optimization 这里的实现比较简单, 就不赘述了, 后续补充一下这部分的优先队列的使用, 以及选择的方式 Window Functions 窗口函数的实现才是这部分的重点 窗口函数介绍 My 阅读全文
posted @ 2025-01-21 18:28 虾野百鹤 阅读(54) 评论(0) 推荐(0)
摘要: HashJoin Executor & Optimization HashJoin Executor 如果查询包含与两列之间单个或者多个等值条件的连接的连接, 则 DBMS 可以使用 HashJoinPlanNode (各个等式之间使用 AND 连接条件), 例如: 考虑以下示例查询: SELECT 阅读全文
posted @ 2025-01-11 16:09 虾野百鹤 阅读(34) 评论(0) 推荐(0)
摘要: Aggregation & Join Executors 实现 AggregationExecutor 的实现 AggregationExecutor 的实现需要关注 AggregationExecutor.h 和 AggregationPlanNode, 以理解其支持的 SQL 语句及其执行方式. 阅读全文
posted @ 2025-01-02 16:27 虾野百鹤 阅读(56) 评论(0) 推荐(0)
摘要: JVM 内存布局与 JNA 调用本地方法原理详解 JVM 内存布局详解 JVM 内存布局随着 JDK 版本不同而不同, 但是大致布局以及运行原理相同, 我们选择 JDK1.8 的内存布局解释. 下图是JDK 1.8 的内存布局的示意图: 程序计数器(PC) 这个是当前线程正在执行的字节码行号指示器, 阅读全文
posted @ 2024-12-27 11:23 虾野百鹤 阅读(272) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 11 下一页