curp · research · also Consistent Unordered Replication Protocol

CURP

CURP overlaps primary execution with unordered recording at witnesses, using commutativity to preserve consistent recovery.

Related Observatory article: CURP on hesela.com

Completion: The primary-backup design needs the primary result and acceptance by every required witness for its fast path. A rejection or unavailable witness requires backup synchronization. Witnesses accept only requests that commute with their retained set, using operation parameters rather than database state. [1]

Recovery: Restore a backup, freeze one available witness, then replay its requests with duplicate suppression. Witness records may overlap updates already in the backup. RIFL binds request IDs and results atomically to the mutation, allowing replay to identify completed work. [1] [3]

Reads: A primary must synchronize before answering a read that conflicts with an unsynced update. A primary reply alone does not certify witness acceptance. [2]

Relations

related
Synchronous replication, Asynchronous replication, Retry deduplication, Linearizability, Harmonia

Limitations

  • The protocol assumes fail-stop failures, not Byzantine behavior. [1]

Citations

  1. Seo Jin Park and John Ousterhout: Exploiting Commutativity For Practical Fast Replication, NSDI 2019, pp. 47-64, sections 3.1-3.6 (accessed 2026-11-13)
  2. Park and Ousterhout: CURP presentation, NSDI 2019, slides 8-14 (accessed 2026-11-13)
  3. Lee et al.: Implementing Linearizability at Large Scale and Low Latency, SOSP 2015, sections 3-4; DOI 10.1145/2815400.2815416 (accessed 2026-11-13)
Sources & caveats
  • Source review of the 2019 protocol and its 2015 duplicate-suppression dependency; no prototype execution or latency reproduction.

JSON: /data/terms/curp.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. CURP. Hesela. 2026-11-13. https://hesela.dev/terms/curp/