CMU15 445/645课程-Buffer Pool笔记

Buffer Pools

用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入了这一中间层,数据库对内存的管理变得相对比较复杂。
缓冲池是从磁盘读取的页面的内存缓存,一个内存区域。

Page table:

页中除了存储用户数据,还可以存储控制信息的数据。

缓冲池是从磁盘读取的页面的内存缓存

(a)它是一个由固定大小页面数组组织的内存区域。 每个数组条目称为一个帧
(b)当DBMS请求页面时,将精确副本放入其中一个帧中

缓冲池维护的元数据:

(a)页面表:跟踪当前在内存中的页面
(b)Dirty-flag:线程修改页面时设置(需要回写)
(c)Pin-counter:触摸该页面的线程数

Workloads:

1.OLTP:联机事务处理
短周期
行列式存储
2.OLAP:联机事务分析
周期长
复杂
列式存储

存储模型:

1.n-ary storage model
优点:
插入,更新,删除操作快
对于需要整个关系的查询非常友好
缺点:
数据量大,都传入内存时,容易堵塞
2.column store
优点:
减少IO,因为DBMS只读需要的数据
缺点:
不利于OLTP

Locks VS Latches

1.Locks
保护数据库事务免受其他事务影响
负责事务时期Held for transaction duration
允许事务执行或者让事务推迟直到一个安全的状态
2.Latches
(a)保护DBMS内部数据结构的关键部分不受其他线程的影响
(b)负责操作时期Held for operation duration
(c)不需要能够回滚更改

时钟算法:

LRU(least recently used)参考链接:https://blog.csdn.net/wanghao109/article/details/13003479

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值