Table of Contents

Class PageCacheBackpressureTimeoutException

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

Page cache allocation timed out: no slot became evictable within the back-pressure timeout. The counts say what held them — pages owed a write (the checkpoint behind the writers), pages under dirty marks (write sets still in flight), pages only an epoch pin keeps — and the message names the dominant one. Transient: it clears once that holder lets go, but it also means the work exceeded what the cache and the disk could absorb in time.

public class PageCacheBackpressureTimeoutException : TyphonTimeoutException, ISerializable
Inheritance
PageCacheBackpressureTimeoutException
Implements
Inherited Members

Constructors

PageCacheBackpressureTimeoutException(int, int, TimeSpan)

Creates a new PageCacheBackpressureTimeoutException capturing the cache pressure at the time of the timeout.

public PageCacheBackpressureTimeoutException(int dirtyPageCount, int epochProtectedCount, TimeSpan waitDuration)

Parameters

dirtyPageCount int

Pages owed a write (writeback debt) when the timeout fired.

epochProtectedCount int

Pages an epoch pin protects (whatever else holds them) when the timeout fired.

waitDuration TimeSpan

How long the allocation waited before the timeout fired.

PageCacheBackpressureTimeoutException(int, int, TimeSpan, int, long)

Creates a new PageCacheBackpressureTimeoutException capturing the cache pressure and the epoch pins at the time of the timeout.

public PageCacheBackpressureTimeoutException(int dirtyPageCount, int epochProtectedCount, TimeSpan waitDuration, int pinnedThreads, long oldestPinLag)

Parameters

dirtyPageCount int

Pages owed a write (writeback debt) when the timeout fired.

epochProtectedCount int

Pages an epoch pin protects (whatever else holds them) when the timeout fired.

waitDuration TimeSpan

How long the allocation waited before the timeout fired.

pinnedThreads int

Threads holding an epoch pin when the timeout fired.

oldestPinLag long

How many epochs the oldest pin is behind the global epoch.

PageCacheBackpressureTimeoutException(int, int, TimeSpan, int, long, int, int)

Creates a new PageCacheBackpressureTimeoutException with the cache's full breakdown, taken in one pass when the timeout fired.

public PageCacheBackpressureTimeoutException(int dirtyPageCount, int epochProtectedCount, TimeSpan waitDuration, int pinnedThreads, long oldestPinLag, int markedPageCount, int epochOnlyCount)

Parameters

dirtyPageCount int

Pages owed a write (writeback debt).

epochProtectedCount int

Pages an epoch pin protects, whatever else holds them.

waitDuration TimeSpan

How long the allocation waited before the timeout fired.

pinnedThreads int

Threads holding an epoch pin.

oldestPinLag long

How many epochs the oldest pin is behind the global epoch.

markedPageCount int

Pages under a dirty mark: a write set still in flight; -1 when not captured.

epochOnlyCount int

Pages nothing but an epoch pin holds.

Properties

DirtyPageCount

Pages owed a write (writeback debt) when the timeout fired: the checkpoint had not written them back yet.

public int DirtyPageCount { get; }

Property Value

int

EpochOnlyCount

Pages nothing but an epoch pin held when the timeout fired.

public int EpochOnlyCount { get; }

Property Value

int

EpochProtectedCount

Pages an epoch pin protected when the timeout fired, whatever else held them.

public int EpochProtectedCount { get; }

Property Value

int

MarkedPageCount

Pages under a dirty mark (a write set still in flight) when the timeout fired; -1 when not captured.

public int MarkedPageCount { get; }

Property Value

int

OldestPinLag

How many epochs the oldest pin was behind the global epoch when the timeout fired.

public long OldestPinLag { get; }

Property Value

long

PinnedThreads

Threads holding an epoch pin when the timeout fired; 0 when not captured.

public int PinnedThreads { get; }

Property Value

int