Class TimeoutOptions
Configuration options for lock acquisition timeouts across all engine subsystems.
public class TimeoutOptions
- Inheritance
-
TimeoutOptions
- Inherited Members
Remarks
Each subsystem has its own timeout property, allowing fine-grained tuning based on expected contention patterns. All defaults are 5 seconds except for TransactionChainLockTimeout and SegmentAllocationLockTimeout which default to 10 seconds due to higher expected contention during heavy write workloads.
When a lock acquisition exceeds its timeout, the caller throws LockTimeoutException with the resource name and elapsed duration for diagnostics.
Constructors
TimeoutOptions()
public TimeoutOptions()
Properties
BTreeLockTimeout
Timeout for B+Tree index locks during insert, delete, and lookup operations.
public TimeSpan BTreeLockTimeout { get; set; }
Property Value
Current
The singleton instance set by DatabaseEngine during initialization. Accessible from any subsystem without requiring a reference to the engine.
public static TimeoutOptions Current { get; }
Property Value
DefaultCommitTimeout
Default timeout for Commit(ConcurrencyConflictHandler) when called without an explicit UnitOfWorkContext. Individual lock timeouts (5-10s) provide tighter bounds within this limit.
public TimeSpan DefaultCommitTimeout { get; set; }
Property Value
DefaultLockTimeout
Default lock timeout used when no subsystem-specific timeout applies.
public TimeSpan DefaultLockTimeout { get; set; }
Property Value
DefaultUowTimeout
Default lifetime timeout for a Unit of Work when none is specified at creation. Individual lock timeouts (5-10s) provide tighter bounds within this limit.
public TimeSpan DefaultUowTimeout { get; set; }
Property Value
PageCacheBackpressureTimeout
Timeout for page cache back-pressure waits. When all cache pages are dirty or epoch-protected, allocation threads wait for IO completion to make pages evictable.
public TimeSpan PageCacheBackpressureTimeout { get; set; }
Property Value
PageCacheLockTimeout
Timeout for page cache state-transition locks in PagedMMF and ManagedPagedMMF.
public TimeSpan PageCacheLockTimeout { get; set; }
Property Value
RevisionChainLockTimeout
Timeout for revision chain locks during MVCC revision read, add, and cleanup operations.
public TimeSpan RevisionChainLockTimeout { get; set; }
Property Value
SegmentAllocationLockTimeout
Timeout for segment allocation locks in chained block allocators and variable-sized buffer segments.
public TimeSpan SegmentAllocationLockTimeout { get; set; }
Property Value
Remarks
Defaults to 10 seconds because segment allocation may trigger page-level operations under the hood.
TransactionChainLockTimeout
Timeout for transaction chain locks during create, remove, and walk operations.
public TimeSpan TransactionChainLockTimeout { get; set; }
Property Value
Remarks
Defaults to 10 seconds because transaction chain operations can involve heavier contention under high-throughput write workloads.
WalBackPressureTimeout
Timeout for WAL commit buffer back-pressure waits. When the ring buffer is full, commit threads spin-wait for the WAL writer to drain it.
public TimeSpan WalBackPressureTimeout { get; set; }