Table of Contents

Class CommitDurabilityUncertainException

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

Thrown when a transaction's records were appended to the WAL and the transaction was published (its changes are visible in memory), but the subsequent Immediate durability wait did not confirm the records reached stable storage (back-pressure timeout or a fatal WAL writer error).

public class CommitDurabilityUncertainException : DurabilityException, ISerializable
Inheritance
CommitDurabilityUncertainException
Implements
Inherited Members

Remarks

This is the AP-02 "point of no return" signal: the Append already happened and the transaction has been published, so it is logically committed and MUST NOT be rolled back. Whether its records survive a crash depends on the WAL writer catching up — recovery will replay them iff they reached stable storage. Callers should treat this as "commit accepted, durability unconfirmed": do not re-run the transaction, and surface the uncertainty to the application. The original wait failure is preserved as InnerException. HighLsn is the batch's highest LSN — poll DurabilityLog.DurableLsn against it to learn whether the records became durable.

Constructors

CommitDurabilityUncertainException(long, Exception)

public CommitDurabilityUncertainException(long highLsn, Exception innerException)

Parameters

highLsn long

The highest LSN of the transaction's appended batch — compare against the durable watermark to learn the outcome.

innerException Exception

The durability wait failure that left durability unconfirmed.

Properties

HighLsn

The highest LSN of the transaction's appended batch.

public long HighLsn { get; }

Property Value

long