Database application programs are often designed to be executed concurrently by many clients. By grouping related database queries into transactions, DBMS systems can guarantee that each transaction satisfies the well-known ACID properties: Atomicity, Consistency, Isolation, and Durability. However, if a database application is decomposed into transactions in an incorrect manner, the application may fail when executed concurrently due to potential offline concurrency problems. This paper presents a dataflow analysis technique for identifying schedules of transaction execution aimed at revealing concurrency faults of this nature, along with techniques for controlling the DBMS or the application to force execution to follow these transaction sequences. The techniques have been integrated into AGENDA, a tool set for testing relational database application programs. Preliminary empirical evaluation is presented.
Yuetang Deng, Phyllis G. Frankl, Zhongqiang Chen