Transaction management in N-version programmed database systems

作者:

Highlights:

摘要

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.

论文关键词:Database systems,N-version programming,concurrency control,algorithms,2 phase locking,serializability,reliability

论文评审过程:Received 23 November 1992, Revised 31 August 1993, Available online 17 June 2003.

论文官网地址:https://doi.org/10.1016/0306-4379(93)90023-T