<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="static/style.xsl"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2026-09-18T19:35:34Z</responseDate><request verb="GetRecord" identifier="oai:www.repository.cam.ac.uk:1810/386642" metadataPrefix="uketd_dc">https://api.repository.cam.ac.uk/server/oai/request</request><GetRecord><record><header><identifier>oai:www.repository.cam.ac.uk:1810/386642</identifier><datestamp>2025-12-19T21:34:51Z</datestamp><setSpec>com_1810_219481</setSpec><setSpec>com_1810_256065</setSpec><setSpec>col_1810_219482</setSpec></header><metadata><uketd_dc:uketddc xmlns:uketd_dc="http://naca.central.cranfield.ac.uk/ethos-oai/2.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:uketdterms="http://naca.central.cranfield.ac.uk/ethos-oai/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:doc="http://www.lyncode.com/xoai" xsi:schemaLocation="http://naca.central.cranfield.ac.uk/ethos-oai/2.0/ http://naca.central.cranfield.ac.uk/ethos-oai/2.0/uketd_dc.xsd">
   <dc:title>Separating conflict-recovery from failure-recovery in distributed consensus</dc:title>
   <dc:identifier xsi:type="dcterms:DOI">https://doi.org/10.17863/CAM.119774</dc:identifier>
   <dc:creator>Jensen, Christopher</dc:creator>
   <uketdterms:authoridentifier xsi:type="uketdterms:ORCID">0009000359939725</uketdterms:authoridentifier>
   <uketdterms:advisor>Mortier, Richard</uketdterms:advisor>
   <uketdterms:advisor>Howard, Heidi</uketdterms:advisor>
   <dcterms:abstract>Distributed databases provide fault tolerance while allowing multiple clients to concurrently submit requests and have those requests executed as if they are performed using a single thread on a single machine. This makes them vital components for a variety of distributed systems, from banking transactions to managing cluster configurations. 

At the core of these distributed databases is their consensus protocol which must order concurrently submitted requests and ensure that the system can mask or recover from failures. Current state-of-the-art consensus protocols re-use their failure-recovery mechanism to resolve ordering conflicts. The thesis of this dissertation is that it is feasible to separate the mechanisms for conflict-recovery and failure-recovery, and that doing so is effective in allowing each to be optimised separately.

To support this thesis we first categorise existing conflict-recovery mechanisms and introduce Multi-Shot-FastPaxos which provides a uniform interface to express, and in some cases further optimise, conflict-recovery mechanisms separately from failure-recovery mechanisms. We also propose a new failure masking approach that reduces the overhead of masking coordinator failures and evaluate existing mechanisms for recovery from coordinator failure, allowing us to propose an optimised recovery procedure for etcd. Finally we present a case study designing a new protocol, Unanimous 2 Phase Commit, which from an initial basic implementation is optimised to equal or exceed the steady-state performance of the current state-of-the-art on all workloads, with an optimised recovery procedure.</dcterms:abstract>
   <uketdterms:institution>University of Cambridge</uketdterms:institution>
   <dcterms:issued>2025-01</dcterms:issued>
   <dc:type>Thesis</dc:type>
   <uketdterms:qualificationlevel>Doctoral</uketdterms:qualificationlevel>
   <uketdterms:qualificationname>Doctor of Philosophy (PhD)</uketdterms:qualificationname>
   <uketdterms:sponsor>Huawei</uketdterms:sponsor>
   <dcterms:isReferencedBy xsi:type="dcterms:URI">https://www.repository.cam.ac.uk/handle/1810/386642</dcterms:isReferencedBy>
   <dc:identifier xsi:type="dcterms:URI">https://www.repository.cam.ac.uk/bitstreams/a3418429-13ba-4c0e-accb-d00e57ed946b/download</dc:identifier>
   <uketdterms:checksum xsi:type="uketdterms:MD5">0ea35b36a7bbcf1b1a0be770b424d7e5</uketdterms:checksum>
   <dcterms:license>https://www.repository.cam.ac.uk/bitstreams/1349cc66-553f-42d5-af1a-21a7a6c3e190/download</dcterms:license>
   <uketdterms:checksum xsi:type="uketdterms:MD5">87eda9de84448d1f82354d60eee3eb5f</uketdterms:checksum>
   <dc:rights>https://creativecommons.org/licenses/by-nc-sa/4.0/</dc:rights>
   <dc:subject>Consensus</dc:subject>
   <dc:subject>Distributed Systems</dc:subject>
   <dc:subject>Paxos</dc:subject>
   <dc:subject>FastPaxos</dc:subject>
   <dc:subject>Failure</dc:subject>
   <dc:subject>Benchmark</dc:subject>
</uketd_dc:uketddc>
</metadata></record></GetRecord></OAI-PMH>