且听疯吟

【CMU 15-445/645】lec3

2023-06-13

CMU 15-445/645 Lec3

Database Storage P1

数据库的几个核心概念如下:

  • Relational Databases
  • Storage
  • Execution
  • Concurrency Control
  • Recovery
  • Distributed Databases
  • Potpourri
    本章节的核心是了解数据的逻辑存储结构与学习如何通过查询来读取和写入数据。

存储设备的对比

  • 非持久化存储与持久化存储对比:
  • 读取速率对比:

顺序读取与随机读取

  • 随机读取一般要慢于顺序读取,DBMS 尽量最大化顺序读取,这就需要各种算法的优化,使得读取尽量保证在同一个 page 或者连续的 block 中读取,而避免跨 page 读取或者写入数据;
  • 由于目前的硬盘在随机读取时的性能会显著的低于顺序读取,因此在实际的 dbms 设计时需要尽量的避免随机读取

存储结构

硬盘中的 page 需要读取到内存中,为什么不用 mmap 来管理 DBMSpage,通过 mmap 可以直接将内存中的地址与硬盘中的文件进行映射,非常方便,操作系统负责后端将文件内容读取到内容,并负责将文件内容写回到硬盘。但实际存在以下问题:

  • 当多个线程读取该文件时,mmap 没有什么问题,但是当多个线程都同时需要写入该文件时则存在问题。
  • 难以保证事务安全,操作系统会随时将脏页清楚掉;
  • DBMS 不知道当前的页面是否在内存中,可能在读写时会产生 pagefault 从而将线程挂起等待;
  • 错误捕捉,由于 page 的管理权限全部是由操作系统管理的,

总结

欢迎关注和打赏,感谢支持!

扫描二维码,分享此文章