Abstract

Abstract Replication is a well-established approach to increasing database availability. Many database replication protocols have been proposed for the crash-stop failure model, in which servers fail silently. Fewer database replication protocols have been proposed for the byzantine failure model, in which servers may fail arbitrarily. This paper considers deferred update replication, a popular database replication technique, under byzantine failures. The paper makes three contributions. First, it shows that making deferred update replication tolerate byzantine failures is quite simple. Second, the paper presents a byzantine-tolerant mechanism to execute read-only transactions at a single server. Third, we consider byzantine client attacks against deferred update replication and discuss effective countermeasures against these attacks.

Highlights

  • Replication is a well-established approach to increasing database availability

  • This paper considers deferred update replication under byzantine failures

  • It proposes the first byzantine faulttolerant deferred update replication protocol that is faithful to its crash-stop counterpart: (i) the execution of a transaction does not require communication across servers, only its termination does, and (ii) only one server executes the transaction commands, but all correct servers apply the updates of a committing transaction

Read more

Summary

Introduction

Replication is a well-established approach to increasing database availability. By replicating data items in multiple servers, the failure of some servers does not prevent clients from executing transactions against the system. This paper considers deferred update replication under byzantine failures It proposes the first byzantine faulttolerant deferred update replication protocol that is faithful to its crash-stop counterpart: (i) the execution of a transaction does not require communication across servers, only its termination does, and (ii) only one server executes the transaction commands, but all correct servers apply the updates of a committing transaction. Our protocol is surprisingly simple and similar to a typical crash-stop deferred update replication protocol, based on a more strict certification procedure to guarantee that transactions only commit if they do not violate consistency and read valid data (i.e., data that was not fabricated by a byzantine server). In the byzantine failure model, clients may inadvertently execute a readonly transaction against a byzantine server that fabricates a bogus database view.

System model and definitions
Transactions and serializability
Deferred update replication
Overview
Algorithm in detail
Read-only transactions
1: Server s’s code: 2: Initialization 3
Correctness
BFT deferred update replication
16: A commit command is executed as follows
Liveness issues
1: Server s’s code: 2
Optimizations
Tolerating byzantine clients
Consistency issues
Byzantine client attacks
Countermeasures against byzantine clients
Abort rates under normal conditions
The “concurrent-transactions” and “write-set” attacks
The impact of the “blind-transactions” attack
The impact of the “colluded-clients” attack
Vulnerability to percentage of byzantine clients
Summary
Related work
Findings
Final remarks
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call