文件名称:刷新回滚日志文件到存储设备中-线性代数及其应用中文版
文件大小:2.3MB
文件格式:PDF
更新时间:2024-06-22 11:56:05
sqlite 数据库 嵌入式 入门必备
3.6 修改用户进程中的数据页 当原始的数据已经被保存到回滚日志文件中之后,用户内存的数据就可以被修改了。任何一个数据库联接都有其他 私有用户内存空间,所以用户内存空间发生的变化只有当前数据库联接才可见。 其他数据库联接仍然可以读取那些存在于操作系统磁盘缓存中还没有被修改的数据。所以即使一个联接忙于某些修 改,其他进程还可以读取原始数据到它们各自的空间中去 3.7 刷新回滚日志文件到存储设备中 接下来的步骤是将回滚日志文件刷新到硬盘中去。接下来我们会看到,这是一个紧要步骤用来保证我们可以从突然 掉电中救回数据。这个步骤将要花费大量的时间—因为通常写入到硬盘是一个耗时操作。. 这个步骤通常要比简单的直接刷新这个回滚文件到硬盘要复杂一些。在大部分的操作系统中,二个单独的 flush 是 必须的。第一个 flush 处理日志文件的内容部分。接下来,将日志文件的页码总数写入到日志文件头部,然后将日 志头部 flsuh 到硬盘中。至少为什么我们要做一个头部修改及做一个额外的 flush 操作的原因我们会在后面的章节解 释。