Class CommitDurabilityUncertainException
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)
Creates a new CommitDurabilityUncertainException.
public CommitDurabilityUncertainException(long highLsn, Exception innerException)
Parameters
highLsnlongThe highest LSN of the transaction's appended batch — compare against the durable watermark to learn the outcome.
innerExceptionExceptionThe durability wait failure that left durability unconfirmed.
Properties
HighLsn
The highest LSN of the transaction's appended batch.
public long HighLsn { get; }