Skip to content
abd-quorum-registers logo

ABD Quorum-Based Registers

abd-quorum-registers

ABD quorum-based linearizable registers for distributed storage — the canonical crash-tolerant read/write protocol with precise RTT and message complexity.

plurigrid/asi0installs67starsOther

SKILL.md

Full skill instructions

ABD Quorum-Based Registers

Trit: 0 (ERGODIC) Domain: Distributed Systems / Shared Memory Emulation Principle: Linearizable read/​write registers over message-passing via quorum intersection

Overview

ABD (Attiya, Bar-Noy, Dolev 1995) is the canonical protocol for emulating linearizable shared-memory registers over asynchronous message-passing networks. It decomposes consistency into three structural pillars and provides the tightest known RTT bounds for crash-tolerant atomic storage.

Three-Pillar Decomposition

Pillar 1: Quorum Intersection

Every read quorum Q_R and write quorum Q_W satisfy Q_R ∩ Q_W ≠ ∅. With majority quorums (|Q| = ⌊n/​2⌋ + 1), this holds for any two quorums.

Sharp failure thresholds:

  • Crash failures: f < n/​2
  • Byzantine failures: f < n/​3

Pillar 2: Timestamps (Logical Clocks)

Each value is tagged with a monotonically increasing timestamp ⟨ts, writer_id⟩. Ties broken by writer ID give a total order on writes. Readers and writers always adopt the highest timestamp seen.

Pillar 3: Write-Back

After reading, the reader writes back the highest-timestamped value to a full quorum before returning. This prevents the new→old inversion that would violate linearizability.

Protocol Phases

SWMR (Single-Writer Multi-Reader)

Write(v):

  1. ts ← ts + 1
  2. Send ⟨WRITE, v, ts⟩ to all servers
  3. Wait for ⌊n/​2⌋ + 1 ACKs → return
  4. Cost: 1 RTT, 2n messages

Read():

  1. Query phase: Send ⟨READ⟩ to all, collect ⌊n/​2⌋ + 1 replies → pick max-ts value
  2. Write-back phase: Send ⟨WRITE-BACK, v_max, ts_max⟩ to all, wait for ⌊n/​2⌋ + 1 ACKs
  3. Return v_max
  4. Cost: 2 RTT, 4n messages

MWMR (Multi-Writer Multi-Reader)

Write(v):

  1. Query phase: Read current max timestamp from a quorum
  2. Write phase: Increment ts, write ⟨v, ts_new⟩ to a quorum
  3. Cost: 2 RTT, 4n messages

Read(): Same as SWMR read. Cost: 2 RTT, 4n messages

Complexity Table

OperationVariantRTTsMessagesOptimal?
WriteSWMR12n✓
ReadSWMR24n✓
WriteMWMR24n✓
ReadMWMR24n✓

Linearizability Proof Skeleton

Six components to verify for any ABD-family protocol:

  1. Total order on writes: Timestamps ⟨ts, wid⟩ form a strict total order
  2. Quorum intersection witness: ∀ R, W quorums: ∃ server s ∈ R ∩ W
  3. Freshness guarantee: Reader sees ts ≥ ts of most recent completed write (via intersection)
  4. Write-back prevents inversion: Read returning v forces v to persist in a quorum before any subsequent read can return
  5. Real-time respect: If op₁ completes before op₂ starts, linearization point of op₁ precedes op₂
  6. Single-value per timestamp: ⟨ts, wid⟩ uniquely determines value (no ambiguity)

Sharp Impossibility Results

ClaimBound
Fast 1-RTT reads (MWMR)Impossible if n > 5 (Dutta et al. 2004)
Linearizability under partitionImpossible (CAP theorem)
Wait-free consensus from registersImpossible (FLP / consensus number = 1)
Byzantine toleranceRequires n ≥ 3f + 1

Extensions

ExtensionKey IdeaReference
Coded ABDReplace replication with erasure codes; same quorum intersection, (1/​r)× storageCadambe et al. 2015
RAMBOReconfigurable quorums via consensus on configuration changesLynch & Shvartsman 2002
Fast reads1-RTT reads when n ≤ 5 or with communication quorumsDutta et al. 2004
Byzantine ABDf < n/​3, uses signed values + echo protocolMalkhi & Reiter 1998
Multi-objectAtomic snapshots via collect-and-write-back on register arraysAADGMS 1993

Shared-Memory ↔ Message-Passing Bridge

ABD is the constructive reduction: any shared-memory algorithm using read/​write registers can be automatically emulated over message-passing with:

  • f < n/​2 crash tolerance
  • O(n) message overhead per register operation
  • O(1) RTT overhead per operation

This means algorithms for snapshots, CAS, l-exclusion, etc. transfer with polynomial overhead, provided majority connectivity.

Relationship to Other Primitives

                    ┌─────────────┐
                    │  Consensus  │  (Paxos/​Raft)
                    │  CN = ∞     │  leader + quorums
                    └──────┬──────┘
                           │ strictly stronger
                    ┌──────┴──────┐
                    │  ABD        │  linearizable R/​W
                    │  CN = 1     │  quorums only
                    └──────┬──────┘
                           │ trades linearizability
                    ┌──────┴──────┐
                    │  CRDTs      │  eventual consistency
                    │  available  │  no quorum needed
                    └─────────────┘
  • Above: Consensus (Paxos/​Raft) uses similar quorum ideas but adds leader election for state machine replication. Consensus number = ∞.
  • Below: CRDTs sacrifice linearizability for availability. No quorum intersection needed.
  • Beside: Coded storage uses the same intersection property with less replication overhead.

When to Use ABD

✅ Designing a distributed KV store or replicated register ✅ Proving linearizability of a new quorum protocol ✅ Choosing failure threshold (f < n/​2 crash, f < n/​3 Byzantine) ✅ Evaluating RTT/​latency trade-offs for read/​write operations ✅ Bridging shared-memory algorithms to message-passing ✅ Understanding where your protocol sits relative to consensus and CRDTs

When NOT to Use ABD

❌ Need leader-based state machine replication → use Paxos/​Raft ❌ Availability-first / eventual consistency → use CRDTs ❌ Need compare-and-swap / consensus → ABD registers have consensus number 1

Integration with GF(3)

This skill participates in triadic composition:

  • Trit 0 (ERGODIC): Neutral — ABD occupies the middle of the consistency spectrum
  • Conservation: Σ trits ≡ 0 (mod 3) across skill triplets

Related Skills

  • consensus (trit 0) — strictly stronger primitive
  • crdt (trit 0) — trades consistency for availability
  • linearization — proof technique for ABD correctness
  • stability (trit +1) — quorum intersection as structural stability

Skill Name: abd-quorum-registers Type: Distributed Systems / Atomic Registers Trit: 0 (ERGODIC) GF(3): Conserved in triplet composition

Non-Backtracking Geodesic Qualification

Condition: μ(n) ≠ 0 (Möbius squarefree)

  1. Prime Path: No state revisited in skill invocation chain
  2. Möbius Filter: Composite paths (backtracking) cancel via μ-inversion
  3. GF(3) Conservation: Trit sum ≡ 0 (mod 3) across skill triplets
  4. Spectral Gap: Ramanujan bound λ₂ ≤ 2√(k-1) for k-regular expansion
Geodesic Invariant:
  ∀ path P: backtrack(P) = ∅ ⟹ μ(|P|) ≠ 0
  
Möbius Inversion:
  f(n) = Σ_{d|n} g(d) ⟹ g(n) = Σ_{d|n} μ(n/​d) f(d)

More Other skills

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

179.7K 100.1K
View

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

179.7K 89.5K
View

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

179.7K 76.1K
View

Fundamental design principles for writing maintainable, testable Python code.

40.2K 21.9K
View

Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.

40.2K 20K
View

Generate Playwright tests from scenarios using interactive browser exploration and validation.

39.7K 18.2K
View

Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.

40.2K 14.7K
View

GDPR-compliant data handling with consent management, data subject rights, and privacy controls.

40.2K 14.3K
View

Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.

40.2K 13.5K
View

Detailed multi-file refactor planning with safety checks and rollback guidance.

39.7K 13K
View