Files
zeekay 98343d238e papers: Mar-3 freeze deliverables for hybrid PQ consensus stack
Quasar Horizon (consensus composition over Pulsar / ML-DSA / BLS lanes
under Prism + LSS lifecycle), Warp 2.0 (Pulse-backed cross-chain envelope
with forward-only v1->v2 migration and lattigo ReadUint64Slice DoS fix),
benchmark report (microbench, reshare, activation, Warp 2.0 verify, Prism
composition, GPU headroom, cross-WAN latency), and NIST IR 8214C-style
submission package (spec, parameter sets, domain separation, serialization,
reference-impl pointers, evaluation report, security analysis, side-channel
considerations).

All four deliverables compile cleanly via pdflatex+bibtex and reference
the canonical proof bucket files at proofs/{definitions,pulsar,lss,quasar}.
No duplication of proof bodies; cite by file path.
2026-03-03 12:00:00 -08:00

134 lines
6.1 KiB
TeX

\section{Background}
\label{sec:background}
%% ============================================================================
QuasarSTM borrows from four lines of work---ordered serializability,
Block-STM, TL2, and TicToc---and rejects the failure modes documented in
the GPU-STM literature.
\subsection{Ordered Serializability under a Known Canonical Order}
\begin{definition}[Canonical order]
\label{def:canonical-order}
A consensus mode supplies a total order
$\preceq_{\mathrm{can}}$ over the transactions in a block (Nova) or a
strict partial order with a deterministic linear extension over the
ready cut (Nebula). The canonical order is fixed before execution and
is independent of execution outcomes.
\end{definition}
\begin{definition}[Ordered serializability]
\label{def:ordered-serializable}
A history $H$ over committed transactions $T_1,\ldots,T_k$ is
\emph{ordered-serializable} with respect to $\preceq_{\mathrm{can}}$
iff there exists a serial schedule $S$ equivalent to $H$ such that
$S$ respects $\preceq_{\mathrm{can}}$.
\end{definition}
Block-STM's central observation is that when a canonical order is
already fixed by consensus, validation does not need to discover one.
It only needs to verify that each committed read observed the version
its canonical predecessor produced. This collapses the validation
problem from $\Theta(k!)$ schedules to a per-read version equality.
\subsection{Block-STM (Aptos)}
Block-STM~\cite{gelashvili2022blockstm} maintains a per-key version
chain $V(k) = \langle v_0, v_1, \ldots\rangle$ keyed by canonical
transaction index. Transactions execute speculatively, recording reads
and writes. Validation walks the read set: each read at canonical
position $i$ must observe the version written by the largest $j < i$
that wrote $k$, evaluated against the latest valid incarnation.
Mismatches trigger re-execution at incarnation $\iota+1$. Convergence
is by induction on $i$: once all $T_j$ for $j < i$ are stable,
re-executing $T_i$ at most once produces a valid commit.
QuasarSTM keeps this skeleton. It modifies what \emph{counts as a read
mismatch} (lane clocks short-circuit it; semantic reducers redefine
it) and what \emph{counts as a repair} (incremental rollback against
fiber checkpoints replaces full re-execution).
\subsection{TL2: Transactional Locking II}
TL2~\cite{dice2006tl2} introduced commit-time locking with a global
version clock. Each transaction snapshots the clock at start and
validates by checking that no observed object's version exceeds the
snapshot. The advantage is invisible reads on the fast path; the
disadvantage is that a single global clock becomes a contention point
under high write throughput.
QuasarSTM \emph{shards} the TL2 idea. There is no global clock. Each
lane has its own \emph{lane clock} (\S\ref{sec:validation}). A
transaction that touches lanes $L_1,\ldots,L_m$ snapshots
$\langle c_1,\ldots,c_m\rangle$ and validates by checking that no
$c_i$ has advanced. This is the Tier~1 fast path: under low
contention, transactions commit without touching the per-key MVCC
chains at all.
\subsection{TicToc: Per-Data-Item Timestamps}
TicToc~\cite{yu2016tictoc} eliminates the centralised timestamp
counter by storing a $(\mathit{read\_ts}, \mathit{write\_ts})$
pair per data item and computing each transaction's commit timestamp
\emph{lazily} as the smallest value compatible with its read and
write footprint. The result is throughput close to ideal optimistic
concurrency control without a global counter.
QuasarSTM adopts the per-key $(\mathit{read\_ts},
\mathit{write\_ts})$ pair (\S\ref{sec:tictoc}) as a tool for
\emph{reducing false aborts}. The hard rule is that timestamps
\emph{cannot} reorder consensus: the canonical order
$\preceq_{\mathrm{can}}$ is supplied by Quasar and is non-negotiable.
TicToc-style timestamps only prove that an observed version is
serializable \emph{within} the canonical order---they never modify
which transaction commits before which.
\subsection{GPU-STM Literature: SIMT Livelock and Scalability}
Cederman et al.~\cite{cederman2010} and Holey et al.~\cite{holey2014}
report two recurrent pathologies on GPU-STM:
\begin{enumerate}[leftmargin=2em,nosep]
\item \emph{SIMT livelock.} Hot-key contention causes warps to
repeatedly stomp on each other; nondeterministic victim
selection and exponential backoff transplanted from CPU STM
do not converge under the lockstep execution model.
\item \emph{Scalability collapse.} A single global version map or
hot-key spinlock serialises the entire warp grid, collapsing
throughput by orders of magnitude under skewed (Zipfian)
access patterns.
\end{enumerate}
QuasarSTM rejects both root causes by construction:
\begin{itemize}[leftmargin=2em]
\item \textbf{Determinism is mandatory.} The contention manager has
six fixed policies (\S\ref{sec:contention}); there is no
randomised victim selection.
\item \textbf{Bounded repair.} Constants \texttt{MAX\_FAST\_REPAIRS}
and \texttt{MAX\_TOTAL\_REPAIRS} (\S\ref{sec:contention})
cap repair attempts; transactions that exceed them are
promoted to a cold queue or routed through a semantic reducer.
\item \textbf{Lane refraction.} Hot lanes are isolated by Prism
\emph{before} STM sees them
(\S\ref{sec:prism}); the GPU-STM hot-key pathology never
arises in steady state.
\item \textbf{No global locks.} There is no global STM clock, no
global version map mutex, no per-key spinlock, no
retry-until-success loop.
\end{itemize}
\subsection{Aria, ESSN, and Multiversion Serialization Graphs}
Aria~\cite{lu2020aria} executes a batch against a single snapshot
and deterministically commits the maximal serializable subset. ESSN
(epoch-serializable safe net)~\cite{adya2000essn} formalises validation
against a multiversion serialization graph (MVSG). Both are
relevant to QuasarSTM: \S\ref{sec:related} discusses how the 3.1
evolution adopts Aria-style commit selection and an MVSG-derived
validation rule. Within the 3.0 specification, validation is the
simpler ``visible-version equality under canonical order'' form
(\S\ref{sec:visibility}).
%% ============================================================================