CMU15-445笔记(十六)

并发控制

基于时间戳的协议

时间戳

对于系统中的每个事务$T_i$,赋予它一个时间戳,记为$TS(T_i)$。如果$TS(T_i) < TS(T_j)$,说明$T_j$比较新。
可以使用

  • 系统时钟
  • 逻辑计数器
阅读更多

CMU-15-445笔记(十五) 基于锁的协议

本次笔记来自《数据库系统概念》第七版 第18章的第一节

并发控制

为了确保书屋的隔离性,DBMS采用的是并发控制来实现的,主要有两阶段封锁(two-phase locking)和快照隔离(snapshot isolation)

阅读更多

CMU-15-445笔记(十四)

Transactions

事务包含了一系列的operations,并且不允许部分执行,要么全部执行,要么不执行。想要实现事务一个比较好的方式是用并发来实现,这样每个事务可以独立执行。

阅读更多

CMU-15-445笔记(十三)

Cost Model

Statistics

DBMS将内部的一些关于table, attributes, indexs的静态信息存到内部的catalog里面,不同的系统会有不同的更新方式

阅读更多

CMU15-445 Lab3记录

Task 1 Excutors

这次lab介绍非常非常长,要完成9个executors,有sequential scan, insert, update, delete, neted loop join, hash join, aggregation, limit, distinct,每一个种query plan都有init next方法,init是用来初始化的,next是提供给调用者一个tuple和对应的RID

阅读更多

CMU-15-445笔记(十)

Processing Models

DBMS的processing modesl定义了系统如何取执行一个query plan

阅读更多

CMU15-445笔记(九)

Join

Operator Output

Data

Early Materialization
将需要join的数据复制到新的tuple中,这样做的好处就是接下来的子操作不会再回到原来的tuple进行更多的操作。

阅读更多

CMU15-445笔记(八)

Sort

2-Way-External Merge Sort

因为数据库的需要排序的数据可能内存装不下,所以可以分块的来进行排序。

阅读更多