Geo-Replicated Byzantine Fault-Tolerant State-Machine Replication with Low Latency
Language
Document Type
Granting Institution
Issue Date
Authors
Editor
Abstract
Protocols tolerating Byzantine faults allow a service to maintain correctness even if some of its parts misbehave. However, they significantly increase the overhead for processing client requests. Especially for geo-replicated systems, response times can grow to several hundred milliseconds. As the communication latency between remote locations is limited by the speed of light, minimizing these delays requires optimized protocols. This thesis investigates different approaches to reduce the response times of strongly consistent Byzantine fault-tolerant state-machine replication protocols that only require a low number of replicas in a geo-replicated setting. It first reviews the steps necessary to process client requests with strong consistency and derives approaches to minimize the delay introduced by the client communication, the agreement and the execution.
To minimize the latency for submitting a client request to the system, each replica is enabled to immediately initiate the ordering for a request, thus allowing a client to communicate with the nearest replica.
The proposed Byzantine fault-tolerant egalitarian protocol, which only uses the minimum number of
To minimize the latency of the agreement protocol, this thesis introduces an approach based on the architecture of modern clouds.
The replicas are split into a central agreement group, which determines the execution order for all client requests, with at least
To minimize the execution latency, this thesis reduces response-time spikes caused by the periodic creation of checkpoints during which the request execution must be paused. Instead, it introduces a concurrent state-capture phase, which starts before reaching the point at which to create the checkpoint. The resulting fuzzy snapshot together with a list of state modifications made by requests executed in the meantime, can be combined into a regular checkpoint that is identical on all replicas. The application interface offers two variants providing different trade-offs regarding simplicity and efficiency.
These approaches successfully reduce the client-perceived response times while also reducing the performance variation caused by different configurations and periodic tasks.
Abstract
Protokolle, die byzantinische Fehler tolerieren, ermöglichen es einem Dienst sich korrekt zu verhalten, selbst wenn Teile von ihm Fehlverhalten zeigen. Allerdings erhöht dies den Aufwand zur Verarbeitung von Nutzeranfragen deutlich. Insbesondere bei georeplizierten Systemen, können die Antwortzeiten auf mehrere hundert Millisekunden steigen. Da die Kommunikationslatenz zwischen entfernten Orten durch die Lichtgeschwindigkeit beschränkt wird, sind optimierte Protokolle nötig, um diese Verzögerungen zu minimieren. Diese Dissertation untersucht Ansätze, um die Antwortzeiten von stark konsistenten, byzantinisch fehlertoleranten Zustandsmaschinenreplikationsprotokollen im Kontext von Georeplikation zu reduzieren, die nur eine geringe Anzahl an Replikaten benötigen. Dazu werden zuerst die für die stark konsistente Verarbeitung von Nutzeranfragen nötigen Schritte betrachtet und daraus Ansätze abgeleitet, die Verzögerungen durch die Kommunikation mit dem Nutzer, die Einigung und die Ausführung minimieren.
Zum Minimieren der Latenz für den Versand einer Nutzeranfrage an das System wird jedem Replikat ermöglicht, die Einigung einer Anfrage sofort zu starten, sodass der Nutzer mit dem nächstgelegenen Replikat kommunizieren kann.
Das vorgeschlagene byzantinisch fehlertolerante egalitäre Protokoll, das nur das Minimum von
Zum Minimieren der Latenz des Einigungsprotokolls stellt diese Dissertation einen Ansatz vor, der die Architektur moderner Cloud-Plattformen ausnutzt.
Die Replikate werden in eine zentrale Einigungsgruppe, die die Ausführungsreihenfolge der Nutzeranfragen festlegt und aus
Zum Minimieren der Ausführungslatenz reduziert diese Dissertation Antwortzeitspitzen, die durch das periodische Erstellen von Sicherungspunkten hervorgerufen werden, währenddessen die Anfrageausführung pausiert werden muss. Stattdessen wird eine nebenläufige Zustandssicherungsphase eingeführt, die bereits startet, bevor der nächste Sicherungspunkt erstellt werden muss. Der hierbei entstehende unscharfe Sicherungspunkt kann zusammen mit einer Liste von in der Zwischenzeit erfolgten Zustandsmodifikationen wieder in einen normalen Sicherungspunkt umgewandelt werden, der auf allen Replikaten übereinstimmt. Die Anwendungsschnittstelle bietet dabei zwei Varianten an, die sich hinsichtlich Einfachheit und Effizienz unterscheiden.
Diese Ansätze ermöglichen es die Antwortzeiten aus Sicht des Nutzers zu optimieren, sowie auch Leistungsschwankungen durch unterschiedliche Systemkonfigurationen oder periodische Aufgaben zu reduzieren.