Detecting and Tolerating Byzantine Faults in Database Systems

This thesis describes the design, implementation, and evaluation of a replication scheme to handle Byzantine faults in transaction processing database systems. The scheme compares answers from queries and updates on multiple replicas which are off-the-shelf database systems, to provide a single data...

Full description

Bibliographic Details
Main Author: Vandiver, Benjamin Mead
Other Authors: Barbara Liskov
Published: 2008
Online Access:http://hdl.handle.net/1721.1/41873
_version_ 1811085420422758400
author Vandiver, Benjamin Mead
author2 Barbara Liskov
author_facet Barbara Liskov
Vandiver, Benjamin Mead
author_sort Vandiver, Benjamin Mead
collection MIT
description This thesis describes the design, implementation, and evaluation of a replication scheme to handle Byzantine faults in transaction processing database systems. The scheme compares answers from queries and updates on multiple replicas which are off-the-shelf database systems, to provide a single database that is Byzantine fault tolerant. The scheme works when the replicas are homogeneous, but it also allows heterogeneous replication in which replicas come from different vendors. Heterogeneous replicas reduce the impact of bugs and security compromises because they are implemented independently and are thus less likely to suffer correlated failures. A final component of the scheme is a repair mechanism that can correct the state of a faulty replica, ensuring the longevity of the scheme.The main challenge in designing a replication scheme for transaction processingsystems is ensuring that the replicas state does not diverge while allowing a high degree of concurrency. We have developed two novel concurrency control protocols, commit barrier scheduling (CBS) and snapshot epoch scheduling (SES) that provide strong consistency and good performance. The two protocols provide different types of consistency: CBS provides single-copy serializability and SES provides single-copy snapshot isolation. We have implemented both protocols in the context of a replicated SQL database. Our implementation has been tested with production versions of several commercial and open source databases as replicas. Our experiments show a configuration that can tolerate one faulty replica has only a modest performance overhead (about 10-20% for the TPC-C benchmark). Our implementation successfully masks several Byzantine faults observed in practice and we have used it to find a new bug in MySQL.
first_indexed 2024-09-23T13:09:19Z
id mit-1721.1/41873
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T13:09:19Z
publishDate 2008
record_format dspace
spelling mit-1721.1/418732019-04-11T03:10:12Z Detecting and Tolerating Byzantine Faults in Database Systems Vandiver, Benjamin Mead Barbara Liskov Programming Methodology This thesis describes the design, implementation, and evaluation of a replication scheme to handle Byzantine faults in transaction processing database systems. The scheme compares answers from queries and updates on multiple replicas which are off-the-shelf database systems, to provide a single database that is Byzantine fault tolerant. The scheme works when the replicas are homogeneous, but it also allows heterogeneous replication in which replicas come from different vendors. Heterogeneous replicas reduce the impact of bugs and security compromises because they are implemented independently and are thus less likely to suffer correlated failures. A final component of the scheme is a repair mechanism that can correct the state of a faulty replica, ensuring the longevity of the scheme.The main challenge in designing a replication scheme for transaction processingsystems is ensuring that the replicas state does not diverge while allowing a high degree of concurrency. We have developed two novel concurrency control protocols, commit barrier scheduling (CBS) and snapshot epoch scheduling (SES) that provide strong consistency and good performance. The two protocols provide different types of consistency: CBS provides single-copy serializability and SES provides single-copy snapshot isolation. We have implemented both protocols in the context of a replicated SQL database. Our implementation has been tested with production versions of several commercial and open source databases as replicas. Our experiments show a configuration that can tolerate one faulty replica has only a modest performance overhead (about 10-20% for the TPC-C benchmark). Our implementation successfully masks several Byzantine faults observed in practice and we have used it to find a new bug in MySQL. 2008-07-02T06:00:10Z 2008-07-02T06:00:10Z 2008-06-30 MIT-CSAIL-TR-2008-040 http://hdl.handle.net/1721.1/41873 Massachusetts Institute of Technology Computer Science and Artificial Intelligence Laboratory 174 p. application/pdf application/postscript
spellingShingle Vandiver, Benjamin Mead
Detecting and Tolerating Byzantine Faults in Database Systems
title Detecting and Tolerating Byzantine Faults in Database Systems
title_full Detecting and Tolerating Byzantine Faults in Database Systems
title_fullStr Detecting and Tolerating Byzantine Faults in Database Systems
title_full_unstemmed Detecting and Tolerating Byzantine Faults in Database Systems
title_short Detecting and Tolerating Byzantine Faults in Database Systems
title_sort detecting and tolerating byzantine faults in database systems
url http://hdl.handle.net/1721.1/41873
work_keys_str_mv AT vandiverbenjaminmead detectingandtoleratingbyzantinefaultsindatabasesystems