磁盘空间管理 DBMS结构的最底层 以页为单位组织数据,主要操作包括读、 写、申请和释放 经常访问的数据可放在连续的空间中 隔离上层模块和底层的软、硬件平台 21
21 磁盘空间管理 DBMS结构的最底层 以页为单位组织数据,主要操作包括读、 写、申请和释放 经常访问的数据可放在连续的空间中 隔离上层模块和底层的软、硬件平台
磁盘空间管理 管理空闲块的方法 记录哪些块正在使用,每一页的位置 通过一个空闲块链表或空闲块位图来记录空闲的块 实现方法 利用操作系统文件系统管理磁盘空间 自己实现对磁盘的访问 选择的因素 跨平台的要求 有的功能操作系统不提供 22
22 磁盘空间管理 管理空闲块的方法 记录哪些块正在使用,每一页的位置 通过一个空闲块链表或空闲块位图来记录空闲的块 实现方法 利用操作系统文件系统管理磁盘空间 自己实现对磁盘的访问 选择的因素 跨平台的要求 有的功能操作系统不提供
缓冲区管理器 负责将磁盘上的数据读入内存并写回磁盘的软件层 管理器管理的内存空间称为 Buffer pool Buffer poo|中的每个页称为Fame(每个 Frame包 含若干slot) 如 Buffer pool有10个页,表中有100个页,如何 进行扫描工作 决定内存中那些页应该被替换的策略称为 Replacement policy 23
23 缓冲区管理器 负责将磁盘上的数据读入内存并写回磁盘的软件层 管理器管理的内存空间称为Buffer Pool Buffer Pool中的每个页称为Frame(每个Frame包 含若干slot) 如Buffer Pool有10个页,表中有100个页,如何 进行扫描工作 决定内存中那些页应该被替换的策略称为 Replacement Policy
工作流程 这已小高 正在访问的fame Buffer pool Dirty frame Free frame 已访问完且未被 修改的数据 如果所需的页不在 Buffer P中且 Buffer p0Q0满 则用 Replace policy 进行调度 DB 24
24 工作流程 DB 高层代码的页请求 Buffer Pool Free Frame Dirty Frame 如果所需的页不在Buffer Pool中且Buffer Pool已满 则用Replace Policy 进行调度 正在访问的frame 已访问完且未被 修改的数据
数据结构和流程 每个fame包括: pin_count; dirty pin_count:正在访问该 frame的事务的个数 Dity:已经被修改过的Fame 请求处理的流程 查看 Buffer pool是否包含此页,如没有,则 找一个 pin cout为0的 frame, pin_coutt 如 dirty为true,则将其写入磁盘 将相应的页读入此 frame 将 frame的地址返回 25
25 数据结构和流程 每个frame包括:pin_count,dirty pin_count:正在访问该frame的事务的个数 Dirty:已经被修改过的Frame 请求处理的流程 查看Buffer pool是否包含此页,如没有,则 找一个pin_cout为0的frame,pin_cout++ 如dirty为true,则将其写入磁盘 将相应的页读入此frame 将frame的地址返回