Table of Contents

Class ResourceOptions

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

Runtime knobs for the database engine's resource subsystems (transaction chain, WAL ring buffer, checkpoint cadence, page-CRC policy). Set at startup via Resources, immutable thereafter.

public class ResourceOptions
Inheritance
ResourceOptions
Inherited Members

Remarks

Every property here is wired — it drives real engine behavior and is range-validated at DI resolution by DatabaseEngineOptionsValidator. (A prior aspirational memory-budget surface — page-cache pages, WAL segment sizing, a shadow-buffer budget and a never-called Validate() — was removed in #148 as vestigial: it governed no allocations. The real cache size lives on DatabaseCacheSize; real WAL segment sizing on WalWriterOptions.)

Constructors

ResourceOptions()

public ResourceOptions()

Properties

CheckpointBarrierTimeoutMs

Bounded budget (milliseconds) for the checkpoint cycle's WAL durability barrier waits (CK-02). On timeout the cycle raises a transient WalBackPressureTimeoutException, which the failure classification (CK-06) treats as Degraded + retry-next-cycle — never a permanent stall.

public int CheckpointBarrierTimeoutMs { get; set; }

Property Value

int

CheckpointIntervalMs

Checkpoint interval when idle (milliseconds).

public int CheckpointIntervalMs { get; set; }

Property Value

int

MaxActiveTransactions

Maximum concurrent active transactions. Beyond this, CreateTransaction throws ResourceExhaustedException.

public int MaxActiveTransactions { get; set; }

Property Value

int

PageChecksumVerification

Controls when page CRC verification occurs. OnLoad verifies on every page load (higher safety, slight overhead). RecoveryOnly only during crash recovery (lower overhead).

public PageChecksumVerification PageChecksumVerification { get; set; }

Property Value

PageChecksumVerification

WalRingBufferSizeBytes

Size of the WAL ring buffer in bytes. When full, commit threads block until the WAL writer drains it.

public int WalRingBufferSizeBytes { get; set; }

Property Value

int