Abstract

A database system must provide timely and accurate outputs. However, it is a well-known fact that application programs typically contain errors, so that it is not always possible to meet these criteria. An important technique that helps combat design and programming errors is N-version programming where independently-developed versions of a program are executed, and a voting algorithm is used to determine the output. This paper addresses concurrency control issues that come into play when N-version programming is employed for building reliable database systems. We show that existing correctness criteria and algorithms for concurrency control are insufficient because a system with multiple versions violates some of the basic assumptions of traditional concurrency control theory. To handle multiple versions that may involve versions with bugs, we develop two notions of correctness. By extending the well-known concurrency control algorithm, 2 PL, we also develop two algorithms to meet these criteria. While the first correctness criterion makes stronger assumptions than the second one on the correctness of the multiple versions, the concurrency control algorithm to meet that criterion is also more efficient, thereby permitting higher throughput.

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