IRecordSequence 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一系列记录的泛型接口。
public interface class IRecordSequence : IDisposable
public interface IRecordSequence : IDisposable
type IRecordSequence = interface
interface IDisposable
Public Interface IRecordSequence
Implements IDisposable
- 派生
- 实现
注解
IRecordSequence 接口提供了面向记录的流的抽象接口。 IRecordSequence 实例可用于读取和写入日志记录。
IRecordSequence 接口提供以下功能:
使用 Append 方法追加日志记录。
使用 ReadLogRecords 方法读取追加的记录。
使用 WriteRestartArea 方法写入特殊的重新开始记录。
使用 ReadRestartAreas 方法从最近写入的重新开始记录中读取重新开始记录。
使用 Flush 方法将记录刷新到持久存储。
为要追加的记录保留空间。
通过前调日志基数来释放日志空间。
接收 TailPinned 事件通知,移动日志的基数以释放空间。
日志记录被追加到 IRecordSequence 实例,每条日志记录都分配有一个唯一的序号。 在给定的记录序列中,序号是严格递增的。 日志记录由不透明数据组成,它们以字节数组段的 IRecordSequence 的形式提供给 IList 实例。
IRecordSequence 接口还公开一些基本属性,这些属性提供有关日志边界的信息。
BaseSequenceNumber 属性包含记录序列中第一条有效记录的序列号。
LastSequenceNumber 属性包含一个序列号,并且保证它大于最后追加的记录的序列号。
RestartSequenceNumber 属性包含最后写入的重新开始区域的序列号。
MaximumRecordLength 属性包含可以追加到序列或从序列中读取的最大记录的大小。
ReservedBytes 属性包含在此记录序列中做出的所有预留的总大小。
如果将 RetryAppend 属性设置为
true
,且 Append 操作因为序列中没有空间而失败,则记录序列将尝试释放空间,然后重试追加操作。
属性
BaseSequenceNumber |
在派生类中重写时,获取当前 IRecordSequence 中第一条有效记录的序列号。 |
LastSequenceNumber |
在派生类中重写时,获取比追加的最新记录大的序列号。 |
MaximumRecordLength |
在派生类中重写时,获取可以追加到此序列或者从此序列中读取的最大记录的大小(以字节为单位)。 |
ReservedBytes |
在派生类中重写时,获取已保留的总字节数。 |
RestartSequenceNumber |
在派生类中重写时,获取最近写入的重新开始区域的序列号。 |
RetryAppend |
获取或设置一个值,该值指示如果日志已满,是否自动重试追加操作。 |
方法
事件
TailPinned |
当记录序列确定必须前移尾数据时发生。 |