A Transactional Correctness Tool For Abstract Data Types
Keywords
Concurrency; Correctness verification; Transactional data structure
Abstract
Transactional memory simplifies multiprocessor programming by providing the guarantee that a sequential block of code in the form of a transaction will exhibit atomicity and isolation. Transactional data structures offer the same guarantee to concurrent data structures by enabling the atomic execution of a composition of operations. The concurrency control of transactional memory systems preserves atomicity and isolation by detecting read/write conflicts among multiple concurrent transactions. State-of-the-art transactional data structures improve on this concurrency control protocol by providing explicit transaction-level synchronization for only non-commutative operations. Since read/write conflicts are handled by thread-level concurrency control, the correctness of transactional data structures cannot be evaluated according to the read/write histories. This presents a challenge for existing correctness verification techniques for transactional memory, because correctness is determined according to the transitions taken by the transactions in the presence of read/write conflicts. In this article, we present Transactional Correctness tool for Abstract Data Types (TxC-ADT), the first tool that can check the correctness of transactional data structures. TxC-ADT elevates the standard definitions of transactional correctness to be in terms of an abstract data type, an essential aspect for checking correctness of transactions that synchronize only for high-level semantic conflicts. To accommodate a diverse assortment of transactional correctness conditions, we present a technique for defining correctness as a happens-before relation. Defining a correctness condition in this manner enables an automated approach in which correctness is evaluated by generating and analyzing a transactional happens-before graph during model checking. A transactional happens-before graph is maintained on a per-thread basis, making our approach applicable to transactional correctness conditions that do not enforce a total order on a transactional execution. We demonstrate the practical applications of TxC-ADT by checking Lock Free Transactional Transformation and Transactional Data Structure Libraries for serializability, strict serializability, opacity, and causal consistency
Publication Date
11-1-2017
Publication Title
ACM Transactions on Architecture and Code Optimization
Volume
14
Issue
4
Document Type
Article
Personal Identifier
scopus
DOI Link
https://doi.org/10.1145/3148964
Copyright Status
Unknown
Socpus ID
85041442761 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/85041442761
STARS Citation
Peterson, Christina and Dechev, Damian, "A Transactional Correctness Tool For Abstract Data Types" (2017). Scopus Export 2015-2019. 4834.
https://stars.library.ucf.edu/scopus2015/4834