CLFS 术语

以下列表提供了通用日志文件系统 (CLFS) 文档中使用的关键术语的定义。 这些定义在讨论 CLFS 期间适用,但可能不适用。 其中许多术语在其他技术上下文中具有一般含义或含义,这些含义不同于此处给出的定义。

容器
物理磁盘或其他稳定存储介质上的连续盘区。 例如,容器可以是连续的磁盘文件。

部门
物理存储介质上的原子 I/O 单位。 扇区的大小是特定存储设备的属性。 例如,硬盘的扇区大小可能为 512 字节。

日志
一个基文件和一组按逻辑顺序排列的容器。 基文件保存日志的元数据,容器保存日志记录。 所有容器的大小相同。

客户
使用 CLFS 日志的应用程序、驱动程序、线程或其他软件单元。

记录
客户端可以追加到日志或从日志中读取的数据单位。


日志中记录的有序子集。 一个日志可以有一个或多个流。 客户端将记录追加到特定流并从中读取记录。 可以比较给定流中的记录,以确定记录的写入顺序。 不能比较不同流中的记录。 给定流可以有多个客户端。 例如,多个线程可以将记录追加到单个流。 对于客户端,流看起来就像是整个日志一样。

专用日志
只能有一个流的日志。

多路复用日志
可以有多个流的日志。

日志 I/O 块
一个缓冲区,其中 CLFS 收集一组以原子方式写入稳定存储的记录。

封送区域
由 CLFS 客户端创建、维护和计划的一组日志 I/O 块,用于收集日志记录并将其写入稳定存储。 在可变内存中为特定封送处理区域分配的日志 I/O 块大小相同。

注意 尽管特定封送处理区域) 可变内存中 (的所有日志 I/O 块的大小相同,但从该封送处理区域写入稳定存储 (的日志 I/O 块) 大小不同。 例如,如果日志 I/O 块在已满之前强制进入稳定存储,则只会将块的已用部分写入稳定存储。

日志序列号 (LSN)
一个不透明的结构,它保存一个值,该值唯一标识给定流中的日志记录。 当客户端将记录写入流时,它会返回一个 LSN,该 LSN 可用于标识将来的记录。 CLFS 分配给流中记录的 LSN 构成递增序列。 也就是说,分配给流中记录的 LSN 始终大于之前写入同一流的记录所分配的 LSN。

注意 跨流的记录不可比较。 也就是说,无法比较不同流中两条记录的 LSN 以确定先写入哪个记录。

基本 LSN
流中客户端仍需要的最旧记录的 LSN。 客户端负责更新基本 LSN。

last LSN
流客户端仍需要流中最年轻的记录的 LSN。 通常,这是最近写入流的记录,但客户端可以选择手动将最后一个 LSN 设置为指向流中的某个早期记录。 手动将最后一个 LSN 设置为早期记录称为 截断 流。

archive tail
日志中尚未进行存档的最早记录的 LSN。 并非每个日志都有存档尾部。 没有存档尾部的日志称为 临时日志,具有存档尾部的日志称为 非临时日志。 当客户端指定日志具有存档尾部时,客户端负责更新存档尾部。

流的活动部分
流的客户端当前正在使用的部分。 活动部分以基本 LSN 或存档尾部指向的记录开始,以较小者为准。 活动部分以最后一个 LSN 指向的记录结束。