《高级数据库系统》笔记—— 第二章 数据存储

回到上一章

课程内容

  • 存储器层次
  • 磁盘存储方式

下面具体介绍

三级存储结构

  • 高速缓冲存储器 cache
  • 主存储器
  • 虚拟存储器、磁盘、文件系统
    • 在操作系统或数据库系统控制下,文件以“块”的方式在磁盘与主存间移动
    • 磁盘读、磁盘写
  • 第三级存储器
    • 机器手磁带库、自动光盘库

磁盘

磁盘分类有以下两种

  • 磁盘组合 (disk assembly):由一个或多个圆形盘片组成,围绕一根中心主轴旋转。上下表面覆盖了一层薄薄的磁性材料,用于存储二进制信息。
  • 磁头组合(head assembly)

盘片结构如下图:
盘片结构
下面简要介绍一下各个部分

  • 磁道被划分为扇区
  • 扇区是被间隙分割的磁道片断
  • 扇区是不可分割的单位
  • 间隙约占整个磁道的10%,用于帮助识别扇区的起点
  • 块是磁盘与主存间传输数据的逻辑单元,由一个或多个扇区组成
  • 同一时刻位于磁头下的各个磁道构成了一个柱面
  • 扇区是磁盘的物理单元
  • 块是使用磁盘的软件系统所建立的逻辑单元
  • 块由一个或多个扇区构成

磁盘控制器的功能

  • 控制磁头,将其定位到一个特定的半径
  • 选择一个准备读写的盘面,并从位于该盘面的磁头下的磁道选择一个扇区。控制器还负责识别旋转主轴到达定点的时刻,在此定点位置,所寻扇区在磁头下开始移动
  • 将从所寻扇区读取的二进制位传送到计算机主存,或将主存数据写入相应扇区

磁盘存储特性

  • 磁盘组合的旋转速度
    • 5400RPM (转/分钟),即每11ms旋转一周
  • 每个磁盘的盘片数目
  • 每个盘片的磁道数
  • 每个磁道的字节数

磁盘访问特性

  • 块读写过程
    • 磁头被定位到包含块的磁道所在的柱面
    • 在整个磁盘组合转动时,组成该块的扇区移动到磁头下面
  • 磁盘的延迟时间 ( latency):从发出块读命令的时刻起,到块的内容出现在主存中止,期间所花费的时间 +
    • 处理器和磁盘控制器处理请求所花费的时间。通常是零点几毫秒,可忽略不计
    • 寻道时间,将磁头定位到合适柱面所花费的时间
    • 旋转延迟,磁盘转动到组成该块的第一个扇区到达磁头是所需的时间,约为磁盘旋转一周时间的一半
    • 传输时间,块的扇区以及各扇区之间的间隙旋转通过磁头所需时间

时间 = 寻道时间 + 旋转时间 + 传输时间 + 其他消耗

其中寻道时间在其中占有相当大的比重,通常以毫秒计,随机寻道时间一般10-40ms
平均要旋转半周才能定位到需要的block,所以旋转时间取旋转一周时间的一半,对于3600RPM(即3600转/秒)的磁盘来说,旋转时间约为8.33ms
传输时间=块大小/传输速率
其他时间消耗:

  • 从I/O请求发出到CPU处理中间的时间延迟
  • 竞争控制器所需要的时间
  • 竞争总线、内存等资源需要的时间
    由于上述这些值很小,所以其他时间消耗一般可以看作0。

顺序读取所用时间分析

上述讨论的是随机访问时间,如果在定位好位置后,进行下一个block的读取操作,那么就不需要 寻道时间旋转时间 了,一旦省去了寻道时间,那么I/O代价就会大幅度降低,例如一个1KB的block,随机访问I/O可能需要时间为20ms,而顺序I/O可能只需要1ms。

块的写操作和修改

  • 块的写操作时间与读类似,但可能需要额外的校验检测时间
  • 块的修改
    • 将块读入主存
    • 对主存副本修改
    • 将块写回磁盘
    • 如果合适,检查写操作是否已被正确执行

I/O代价

  • DBMS的各种操作中,磁盘I/O时间占据了主要处理时间
  • 优化性能时主要考虑I/O代价

下一章 数据元素和表示

文章目录
  1. 1. 回到上一章
  • 课程内容
  • 三级存储结构
  • 磁盘
    1. 1. 磁盘控制器的功能
    2. 2. 磁盘存储特性
    3. 3. 磁盘访问特性
    4. 4. 顺序读取所用时间分析
    5. 5. 块的写操作和修改
    6. 6. I/O代价
  • 下一章 数据元素和表示
  • ,