Ben Vandiver, Hari Balakrishnan, Barbara Liskov, and Sam Madden CSAIL, MIT Tolerating Byzantine Faults in Database Systems using Commit Barrier Scheduling.

Slides:



Advertisements
Similar presentations
Optimistic Methods for Concurrency Control By : H.T. Kung & John T. Robinson Presenters: Munawer Saeed.
Advertisements

More About Transaction Management Chapter 10. Contents Transactions that Read Uncommitted Data View Serializability Resolving Deadlocks Distributed Databases.
Concurrency Control WXES 2103 Database. Content Concurrency Problems Concurrency Control Concurrency Control Approaches.
Concurrency Control Enforcing Serializability by Locks
Lock-Based Concurrency Control
Database Systems, 8 th Edition Concurrency Control with Time Stamping Methods Assigns global unique time stamp to each transaction Produces explicit.
ICOM 6005 – Database Management Systems Design Dr. Manuel Rodríguez-Martínez Electrical and Computer Engineering Department Lecture 16 – Intro. to Transactions.
Computer Science Lecture 18, page 1 CS677: Distributed OS Last Class: Fault Tolerance Basic concepts and failure models Failure masking using redundancy.
EEC 688/788 Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
CMPT Dr. Alexandra Fedorova Lecture X: Transactions.
CS 582 / CMPE 481 Distributed Systems Fault Tolerance.
Transaction Management and Concurrency Control
Computer Science Lecture 17, page 1 CS677: Distributed OS Last Class: Fault Tolerance Basic concepts and failure models Failure masking using redundancy.
Transaction Management and Concurrency Control
Database management concepts Database Management Systems (DBMS) An example of a database (relational) Database schema (e.g. relational) Data independence.
Transaction Management and Concurrency Control
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering.
All of ERD (Ch 3) plus: – Class/subclass relationships – Inheritance – Specialization – Generalization – Category.
BASE: Using Abstraction to Improve Fault Tolerance Rodrigo Rodrigues, Miguel Castro, and Barbara Liskov MIT Laboratory for Computer Science and Microsoft.
9 Chapter 9 Transaction Management and Concurrency Control Hachim Haddouti.
Functions of a Database Management System. Functions of a DBMS C.J. Date n Indexing n Views n Security n Integrity n Concurrency n Backup/Recovery n Design.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Transaction Management and Concurrency Control
Multi-user Database Processing Architectures Architectures Transactions Transactions Security Security Administration Administration.
The University of Akron Dept of Business Technology Computer Information Systems DBMS Functions 2440: 180 Database Concepts Instructor: Enoch E. Damson.
Concepts of Database Management, Fifth Edition
Sofia, Bulgaria | 9-10 October SQL Server 2005 High Availability for developers Vladimir Tchalkov Crossroad Ltd. Vladimir Tchalkov Crossroad Ltd.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 10 Transaction Management.
1cs Intersection of Concurrent Accesses A fundamental property of Web sites: Concurrent accesses by multiple users Concurrent accesses intersect.
PMIT-6102 Advanced Database Systems By- Jesmin Akhter Assistant Professor, IIT, Jahangirnagar University.
Consistent and Efficient Database Replication based on Group Communication Bettina Kemme School of Computer Science McGill University, Montreal.
ITEC 3220M Using and Designing Database Systems Instructor: Prof. Z. Yang Course Website: 3220m.htm
Heterogeneous Database Replication Gianni Pucciani LCG Database Deployment and Persistency Workshop CERN October 2005 A.Domenici
SCUJoAnne Holliday11–1 Schedule Today: u Transaction concepts. u Read Sections Next u Authorization and security.
Practical Byzantine Fault Tolerance
1 Concurrency Control II: Locking and Isolation Levels.
From Viewstamped Replication to BFT Barbara Liskov MIT CSAIL November 2007.
11/7/2012ISC329 Isabelle Bichindaritz1 Transaction Management & Concurrency Control.
The Relational Model1 Transaction Processing Units of Work.
XA Transactions.
Chapter 4 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University Building Dependable Distributed Systems.
1 CSE 480: Database Systems Lecture 24: Concurrency Control.
Systems Research Barbara Liskov October Replication Goal: provide reliability and availability by storing information at several nodes.
Revisiting failure detectors Some of you asked questions about implementing consensus using S - how does it differ from reaching consensus using P. Here.
Multidatabase Transaction Management COP5711. Multidatabase Transaction Management Outline Review - Transaction Processing Multidatabase Transaction Management.
EEC 688/788 Secure and Dependable Computing Lecture 9 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
10 Transaction Management and Concurrency Control MIS 304 Winter 2005.
10 1 Chapter 10 - A Transaction Management Database Systems: Design, Implementation, and Management, Rob and Coronel.
ICOM 6005 – Database Management Systems Design Dr. Manuel Rodríguez-Martínez Electrical and Computer Engineering Department Lecture 16 – Intro. to Transactions.
18 September 2008CIS 340 # 1 Last Covered (almost)(almost) Variety of middleware mechanisms Gain? Enable n-tier architectures while not necessarily using.
Chapter 13 Managing Transactions and Concurrency Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.
Distributed Databases – Advanced Concepts Chapter 25 in Textbook.
Tolerating Latency in Replicated State Machines through Client Speculation April 22, 2009 Benjamin Wester1, James Cowling2, Edmund B. Nightingale3, Peter.
Transaction Management and Concurrency Control
Functions of a Database Management System
Two phase commit.
Database management concepts
Outline Announcements Fault Tolerance.
Chapter 10 Transaction Management and Concurrency Control
EEC 688/788 Secure and Dependable Computing
From Viewstamped Replication to BFT
EEC 688/788 Secure and Dependable Computing
Database management concepts
Introduction of Week 13 Return assignment 11-1 and 3-1-5
Distributed Transactions
Transactions and Concurrency
EEC 688/788 Secure and Dependable Computing
Last Class: Fault Tolerance
Presentation transcript:

Ben Vandiver, Hari Balakrishnan, Barbara Liskov, and Sam Madden CSAIL, MIT Tolerating Byzantine Faults in Database Systems using Commit Barrier Scheduling Sponsors: Quanta Computer Inc, NSF

Non-crash faults in Databases Over 50% of reported bugs were non- crash faults Incorrect answers, data or index corruption, etc. Previous focus on fail-stop faults Better model: Byzantine faults Bug CategoryDB2 2/03-8/06 Oracle 7/06-11/06 MySQL 8/06-11/06 DBMS Crash Non-Crash Faults

Failure Independence Heterogeneous replicas Different implementations / versions Easiest with non-invasive solution Requires standard interface SQL is moderately standard

Client Interaction Organized into Transactions Query, Query, …, Commit / Rollback Interactive Strong consistency Single-copy serializable

Database Functionality Each Database provides Serializable isolation Strict (rigorous) 2-phase locking Databases don’t execute in issue-order Limited control over execution order IssueS1S1 S2S2 Replica 1 executes Replica 2 executes S1S1 S2S2 S2S2 S1S1

Replica Coordination BFT well known solution 3f+1 replicas Globally order client requests Replicas execute in order Exhibits no concurrency Goal: mechanism to extract concurrency in database context

Architecture Client Shepherd DB1DB2DB3 SQL

Architecture Client Shepherd DB1DB2DB3 SQL Result ?? Vote Result Need f+1 matching votes

How to extract concurrency? Just issue statements to replicas Likely to get stuck Solution: pre-determine which statements conflict Inspecting SQL is very hard

Commit Barrier Scheduling Primary / Secondary Scheme Run transactions first on the primary Duplicate primary’s ordering on the secondaries Works best when primary is Sufficiently Blocking Required for performance, not correctness

Client Shepherd DB Primary Result Commit Barrier Scheduling SQL ?

Correct Execution Statement Ordering Rule Execute statements of transaction in order Commit Ordering Rule All replicas commit transactions in the same order Order determined by Shepherd

Execution Trace on Primary T1T1 T2T2 SXSX C SYSY SZSZ C Time

Extracting Conflict Info Don’t Conflict! T1T1 T2T2 SXSX C SYSY SZSZ C

Avoiding Conflicts Might Conflict! Transaction-Ordering Rule: A query from transaction T 2 that was executed by the primary after the COMMIT of transaction T 1 can be sent to a secondary only after it has processed all queries of T 1. T1T1 T2T2 SXSX C SYSY SZSZ C

Commit Barrier Scheduling Maintain barrier for each replica Mark statements and transactions with barriers Issue statements and commits when replica’s barrier reaches appropriate value Simple to implement

Analysis of CBS: Non-faulty primary Full concurrency on the Primary Deadlocks detected and resolved locally Ample concurrency on Secondaries allows many statements to run in parallel Secondaries hardly ever block Latency increase

Early Return Client Shepherd DB Primary Result Next SQL Stmt SQL Pipelined Execution!

Early Return Analysis Cut latency in half Must vote at Commit Sent wrong answer, abort the transaction Correctness Condition Clients receive correct answers for all transactions that commit

Masking Faults Faulty Secondary not a problem Voting resolves wrong answers Faulty Primary is a problem Generates invalid schedule Goal: correct execution

Faulty Primary Scenario Faulty PrimaryReplica R1Replica R2 T 1 : A = 1 T 1 : waiting T 2 : A = 1T 2 : waitingT 2 : A = 1 T 1, T 2 – Increment A by 1, return A A initially 0, should end up 2 f+1 matching votes for both answers!

Other Issues Mechanics Replica Repair Shepherd crashes Heterogeneity & SQL

Implementation Prototype called HRDB Implemented in Java About 3500 semicolon-lines of code JDBC interface to clients and databases Works with MySQL, DB2, Derby, and SQLServer

Performance 17%

Heterogeneous Replication Ran 2f+1=3 replica system, heterogeneous vendors MySQL, DB2, Commerical DB X Sufficiently Blocking holds in practice System runs at slowest of f+1 fastest replicas, or primary

Fail-Stop Faults

Bugs and HRDB Successfully masked bugs Heterogeneous vendors & heterogeneous versions Found a new bug in MySQL While running TPC-C Present since October 2001 Patched in recent release Starting to look for bugs actively with HRDB

Conclusion First practical Byzantine Fault Tolerant Database Failure independence by supporting heterogeneous replicas Novel concurrency extraction scheme Tool for finding new bugs in databases

Backup Slides

Snapshot Isolation Allows read-after-write hazards Converts fail-stop to Byzantine faults Need write-sets to implement Scheme called Snapshot Barrier Scheduling

Implement with Barriers T1T1 T2T2 T3T3 SWSW C SJSJ SKSK C CSXSX SZSZ Primary S – Annotate with current barrier upon completion C – Increment barrier before issue SYSY B=1B=2B=0B=3 Secondary S – Issue when replica barrier is at least the value of the annotation C – Increment replica barrier after completion

Heterogeneity Issues Non-determinism in answers Result set ordering Non-deterministic functions in queries Database-assigned row IDs  Query Rewriting SQL incompatibility Translation Engine SQL hiding – Views and Stored Procedures

Future Work Replicating the Shepherd Efficient Replica Repair Finding Bugs

Replica Recovery Replicas Fail-stop crashes – Shepherd replays missing transactions Uses transaction log table in database to discover which transactions to replay Byzantine faults – Shepherd repairs faulty state, then replays Efficient repair mechanism under development Shepherd Fail-stop crashes - Maintains a write-ahead log

Faulty Primary Wrong answers result in transaction abort Concurrency Faults Can result in secondaries being unable to make progress System is back to “Correct but Slow” solution Same case as when primary is not sufficiently blocking Can be hard to tell if primary is faulty Replace primary by doing a view change